我试图基于另一个(table2)将数据插入到表(table1)中,唯一的问题是table1包含设置为不允许空值的字段。我是否需要在table2中创建这些字段,我从中提取数据并用值填充它们?
示例not null field:password
如果我没有在我的查询中包含这个,那么我得到一个错误并且没有插入记录但是如果我在table2中创建字段然后插入到我的查询中它工作正常。这看起来有点与众不同。以下示例查询:
示例1(表2中没有密码字段):
$insert_new_records_query = "INSERT INTO table1 (first_name, last_name, email_address) ".
"SELECT firstname, lastname, email FROM table2";
这会产生错误,说我必须包含密码字段。
示例2(表2中的密码字段):
$insert_new_records_query = "INSERT INTO table1 (first_name, last_name, password,
email_address) ".
"SELECT firstname, lastname, password = 'password1', email FROM table2";
这允许创建记录。问题是我在表1中有更多非空的字段,我认为我不需要在表2中创建它们作为空白字段,并将它们插入到我的查询中,只是为了创建一个记录。有更好的方法吗?
答案 0 :(得分:1)
您不必创建字段,只需“选择”默认值即可。试试这个:
INSERT INTO table1 (first_name, last_name, password, email_address)
SELECT firstname, lastname, 'password1', email FROM table2