在 sql 中插入语句,其中一个字段设置为自动编号
Posted
技术标签:
【中文标题】在 sql 中插入语句,其中一个字段设置为自动编号【英文标题】:Insert statement in sql with one field set as autonumber 【发布时间】:2013-03-13 03:56:09 【问题描述】:我的表分支中有三列,即 id(Autonumber)、code(text)、desc(text)。我正在尝试执行此 sql
insert into branch(code,desc) values('"+b+"','"+c+"')";
这给了我错误语法错误..请帮助
【问题讨论】:
不要在 JSP 中嵌入 Java 代码。如果您不想遭受 SQL 注入攻击,请了解预准备语句。 【参考方案1】:您的某个列的名称为DESC
,即Reserved Keyword
。为了能够正常执行INSERT
语句,您需要使用brackets
分隔列,例如
insert into branch(code,[desc]) values ('"+b+"','"+c+"')";
MSACCESS Reserved Keywords List
还有一点,你的代码很容易出现SQL Injection
。请对查询进行参数化。
【讨论】:
谢谢,但我没有从 5 开始,我怎样才能让它从 1 开始? 呃,从 1 开始是什么意思? 您的意思是您有一个列名no
,它被设置为auto_increment 字段并且您希望它从1 开始?如果是这样,执行这个ALTER TABLE branch ALTER COLUMN no COUNTER(1,1)
我的意思是我的表有 id 作为自动增量,当我输入我的第一条记录时,记录被添加但 id 号是 5。如何让它从 1 开始?
Alter table ... Counter(1,1)
在 MS Access 中的表上会弄乱种子,你最终会得到重复。这只是在一张空桌子上的一个好主意,一旦桌子是空的,你也可以压缩和修复,这将安全地重置所有东西,无论如何都应该完成。然而,真正的问题是你为什么关心自动编号包含的内容?当你试图让自动编号有意义时,沿着这些思路思考会导致进一步的悲伤。自动编号永远不适合序列号,它只是一个唯一的键,如果你这样乱七八糟,甚至不适合。以上是关于在 sql 中插入语句,其中一个字段设置为自动编号的主要内容,如果未能解决你的问题,请参考以下文章
在sql数据库,我插入一条数据有误,编号错了,和前面的重复,要怎么修改呢?