Mysql 我是否必须按顺序列出所有列,并在INSERT语句中为每个列指定值?

Mysql 我是否必须按顺序列出所有列,并在INSERT语句中为每个列指定值?,mysql,insert,Mysql,Insert,这是可能的还是我必须列出所有列 INSERT INTO table_name (column1, **column3**, column2,...) VALUES (value1, value2, value3,...) 我是否必须按顺序列出所有列,并且每个列都有值 您只需将计划插入的列放入即可。唯一需要匹配的顺序是列名和值 IE:3列:col1,col2,col3 插入表(col1,col2)值(col1value,col2value) 插入表(col2,col3)值(col2value,c

这是可能的还是我必须列出所有列

INSERT INTO table_name (column1, **column3**, column2,...)
VALUES (value1, value2, value3,...)

我是否必须按顺序列出所有列,并且每个列都有值

您只需将计划插入的列放入即可。唯一需要匹配的顺序是列名和值

IE:3列:
col1
col2
col3

插入表(
col1
col2
)值(
col1value
col2value

插入表(
col2
col3
)值(
col2value
col3value


插入表(
col3
col2
)值(
col3value
col2value
对于INSERT语句,它应该是这样的:

INSERT INTO table_name (column1, column3, column2,...) VALUES (value1, value3, value2,...) 将值(value1,value3,value2,…)插入表名称(column1,column3,column2,…)
由于您移动了column3,value3应该与之“匹配”

您可以按任何顺序放置查询列,只要您像上面那样指定顺序。作为
VALUE
子句的一部分插入的实际值必须与查询的
插入(x,y,z)
部分相匹配

未指定的任何列都将插入默认值。默认值由创建列时设置的
default
值确定


如果列上有
NOT NULL
规范且没有
默认值,并且您在查询中没有提供值,则插入
可能会失败。

您的列名必须与插入的值相对应。例如,在上面的查询中,如果column1是varchar,column3是int,等等,那么这些值必须对应,并且按照正确的顺序才能成功执行查询