Sql 如何插入具有可空列的记录?

Sql 如何插入具有可空列的记录?,sql,Sql,如何插入具有可空列的记录 您可以从insert语句中忽略该列,或者将其设置为NULL您可以从insert语句中忽略该列,或者如果column2为NULL,则将其设置为NULL insert into table(column1, column3) values (1, 3) 或者仅仅包括它 insert into table(column1, column2, column3) values (1, null, 3) 如果第2列为空 insert into table(column1, co

如何插入具有可空列的记录

您可以从insert语句中忽略该列,或者将其设置为NULL

您可以从insert语句中忽略该列,或者如果column2为NULL,则将其设置为NULL

insert into table(column1, column3) values (1, 3)
或者仅仅包括它

insert into table(column1, column2, column3) values (1, null, 3)
如果第2列为空

insert into table(column1, column3) values (1, 3)
或者仅仅包括它

insert into table(column1, column2, column3) values (1, null, 3)

你们让我想到:把-1移到空指示符,插入一个有效值,把0移到空指示符。

你们让我想到:把-1移到空指示符,把0移到空指示符。

总是命名插入中的所有列。如果表架构发生更改,则插入内容更有可能不会中断或工作错误。因此,只需在以下字段中输入NULL:

INSERT INTO YourTable (col1, col2, col2) VALUES (1, null, 'A')
编辑
出现问题的方式有很多种,下面仅举一个示例说明模式更改如何中断编码错误的插入:

YourTable
col1  int      not null
col2  int      null
col3  char(1)  null
您可以在多个位置对其进行编码:

INSERT INTO YourTable VALUES (1, null, 'A')
--OR this                             ---<<<<EDIT2
INSERT INTO YourTable VALUES (1, 'A') ---<<<<EDIT2
你的代码怎么了?哪些值放在哪些列中

如果你是这样编码的

INSERT INTO YourTable (col1, col2, col2) VALUES (1, null, 'A')

它仍然有效

始终命名插入中的所有列。如果表架构发生更改,则插入内容更有可能不会中断或工作错误。因此,只需在以下字段中输入NULL:

INSERT INTO YourTable (col1, col2, col2) VALUES (1, null, 'A')
编辑
出现问题的方式有很多种,下面仅举一个示例说明模式更改如何中断编码错误的插入:

YourTable
col1  int      not null
col2  int      null
col3  char(1)  null
您可以在多个位置对其进行编码:

INSERT INTO YourTable VALUES (1, null, 'A')
--OR this                             ---<<<<EDIT2
INSERT INTO YourTable VALUES (1, 'A') ---<<<<EDIT2
你的代码怎么了?哪些值放在哪些列中

如果你是这样编码的

INSERT INTO YourTable (col1, col2, col2) VALUES (1, null, 'A')

它仍然有效

我不明白在中添加所有列会如何影响任何不中断的内容。你能举个例子吗?我想你的意思是你的表(col1,col3)和你的表(col1,col2,col3)之间有区别。我知道你的例子不好,我只是认为你的意思是不包括col2是不好的。当然,如果你想使用默认值而不是显式使用null,那么省略该列是可以的。明白了,我知道这偏离了主题,但感谢你澄清了这一点。我不是DB的人。。。正如您可能知道的那样。@KeeperOfTheSoul,在不设置默认值的情况下,很难将列添加到现有表中,这就是为什么我把它放在我的简单示例中的原因。我不明白在中添加所有列将如何影响任何不中断的内容。你能举个例子吗?我想你的意思是你的表(col1,col3)和你的表(col1,col2,col3)之间有区别。我知道你的例子不好,我只是认为你的意思是不包括col2是不好的。当然,如果你想使用默认值而不是显式使用null,那么省略该列是可以的。明白了,我知道这偏离了主题,但感谢你澄清了这一点。我不是DB的人。。。正如您可能知道的那样。@KeeperOfTheSoul,在不设置默认值的情况下,很难将列添加到现有表中,这就是我将其放在简单示例中的原因。