Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数据库中添加新列后必须更新每个INSERT SQL命令_Sql_Sql Insert - Fatal编程技术网

在数据库中添加新列后必须更新每个INSERT SQL命令

在数据库中添加新列后必须更新每个INSERT SQL命令,sql,sql-insert,Sql,Sql Insert,我是网站开发的新手 我在向数据库中添加新列时遇到了一个问题 问题是在添加新列后,必须始终更新指定列列表(如INSERT、CREATE等)的每个SQL命令。 例如,我使用SQL命令将新用户插入数据库: INSERT INTO `users` (`id`, `name`, `email`, `pass`) VALUES (NULL, $name, $email, $pass) 但是,我在表用户的末尾添加了一个新列phone,现在我必须更新该表中的所有INSERT命令: INSERT INTO `

我是网站开发的新手

我在向数据库中添加新列时遇到了一个问题

问题是在添加新列后,必须始终更新指定列列表(如INSERT、CREATE等)的每个SQL命令。 例如,我使用SQL命令将新用户插入数据库:

INSERT INTO `users` (`id`, `name`, `email`, `pass`) 
VALUES (NULL, $name, $email, $pass)
但是,我在表
用户
的末尾添加了一个新列
phone
,现在我必须更新该表中的所有INSERT命令:

INSERT INTO `users` (`id`, `name`, `email`, `pass`, `phone`) 
VALUES (NULL, $name, $email, $pass, $phone)
我可能在代码中有很多INSERT命令,并且我必须更新它们中的每一个

web开发中是否有解决方案


希望你的帮助

您可以不使用该列。如果
phone
是一列,并且您有:

INSERT INTO `users` (`id`, `name`, `email`, `pass`) 
    VALUES (NULL, $name, $email, $pass);
然后,
phone
被设置为其默认值。如果未指定默认值,则该值为
NULL
。如果列没有默认值,也没有提供值,则会出现错误

此外,
id
可能是一个自动递增列,自动分配。您也可以将其忽略:

INSERT INTO `users` (`name`, `email`, `pass`) 
    VALUES ($name, $email, $pass);

这就是ORM的用途。它们减少了大量容易出错的键入。除非要为新列包含值,否则不必更新
insert
语句。如果你这样做了,你无论如何都需要更新它们来提供价值。这真的不是问题,闻起来像是一个普通的问题,只是跳进并开始编码,而不是正确的研究、设计和建模。在一天结束时,如果您稍后返回应用程序并添加一个新列,只要您现有的所有插入正确地指定了列的名称,就不会有任何中断,您只需要修改需要填充新数据的插入内容—这是您必须做的,没有什么魔法可以绕过它。@GordonLinoff,我认为我必须在INSERT命令中指定表的所有列。非常感谢。