我想基于另一个表(table2)插入数据到一个表(table1),唯一的问题是table1包含设置为不允许空值的字段。我是否需要在table2中创建这些字段,并从中提取数据并填充它们?MySQL从另一个表中插入字段不为空
例不空字段:密码
如果我不包括这在我的查询,然后我得到一个错误,如果我创建表2中的字段中的记录不但是插入,然后插入我的查询,它工作正常。这似乎有点不寻常。下面的实施例的查询:
实施例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中将它们创建为空白字段,并将它们插入到查询中,并使用值创建记录。有一个更好的方法吗?
您是否可以修改table1中的“not null”字段以允许空值? – 2012-01-04 16:06:47
你想用这个设置完成什么? – thomaux 2012-01-04 16:06:59
@ZackMacomber,如果这些字段允许空值,那么这些约束就不会在那里。除非OP无法控制第一张课程表,但我们缺乏这样的信息 – thomaux 2012-01-04 16:08:36