繁体   English   中英

SQL插入Auto_Increment列

[英]SQL Insert into Auto_Increment column

基本上,我有一个用于通用SQL语句的PHP类:

  1. object.table('table_name')填充一个数组,其中'table_name'的列名从table_schema中拉出

  2. object.insert(data_array)使用列数组和data_array在'table_name'运行insert语句

  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM