MySQL从另一个表中插入,其中字段不为空

时间:2012-01-04 16:01:39

标签: php mysql

我试图基于另一个(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中创建它们作为空白字段,并将它们插入到我的查询中,只是为了创建一个记录。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您不必创建字段,只需“选择”默认值即可。试试这个:

INSERT INTO table1 (first_name, last_name, password, email_address)
    SELECT firstname, lastname, 'password1', email FROM table2