[英]SQL Insert into Auto_Increment column
基本上,我有一个用于通用SQL语句的PHP类:
object.table('table_name')
填充一个数组,其中'table_name'
的列名从table_schema中拉出
object.insert(data_array)
使用列数组和data_array在'table_name'
运行insert语句
object.select('where')
使用where语句输入返回'table_name'
中的所有内容,或者根本不返回任何内容
我这样做是因为我很懒,我想让我的代码更漂亮。 但是,模式查找会从我的表中返回ID
列,这很好,因为有时我需要使用object.select()
返回它。 但是,它使object.insert()
有点困难。
是否有一些我不知道的SQL功能允许您准确地插入到自动增量列中,或者是否有一个更简单的解决方案就在我眼前,我只是一个完整的白痴。
无法插入自动递增的列。 您可以执行插入(绕过自动递增的字段)并只接受自动生成的ID ...
您需要从insert语句中省略id列,并使用last_insert_id()
来获取最后插入的键
不确定您使用的是哪个rdbms,但在SQL Server中,您可以通过以下方式允许插入标识列:
SET IDENTITY_INSERT dbo.MyTable ON
但我不确定你为什么要那样做......
相反,当你执行:object.table('table_name')时,收集的不仅仅是列名,例如ColumnName,DataType,IsIdentity等。它可以通过多维数组或类。
然后在插入/选择时,您可以过滤掉IsIdentity的列。 在构造插入时,了解数据类型也很有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.