我想基於另一個表(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