【问题标题】:Insert statement in sql with one field set as autonumber在 sql 中插入语句,其中一个字段设置为自动编号
【发布时间】:2013-03-13 03:56:09
【问题描述】:

我的表分支中有三列,即 id(Autonumber)、code(text)、desc(text)。我正在尝试执行此 sql insert into branch(code,desc) values('"+b+"','"+c+"')"; 这给了我错误语法错误..请帮助

【问题讨论】:

  • 不要在 JSP 中嵌入 Java 代码。如果您不想遭受 SQL 注入攻击,请了解预准备语句。

标签: sql jsp ms-access sql-insert autonumber


【解决方案1】:

您的某个列的名称为DESC,即Reserved Keyword。为了能够正常执行INSERT 语句,您需要使用brackets 分隔列,例如

insert into branch(code,[desc]) values ('"+b+"','"+c+"')";

还有一点,你的代码很容易出现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 中的表上会弄乱种子,你最终会得到重复。这只是在一张空桌子上的一个好主意,一旦桌子是空的,你也可以压缩和修复,这将安全地重置所有东西,无论如何都应该完成。然而,真正的问题是你为什么关心自动编号包含的内容?当你试图让自动编号有意义时,沿着这些思路思考会导致进一步的悲伤。自动编号永远不适合序列号,它只是一个唯一的键,如果你这样乱七八糟,甚至不适合。
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 2016-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多