簡體   English   中英

MySQL從另一個表插入,其中字段不為空

[英]MySQL insert from another table where field(s) are not null

我試圖將數據插入到基於另一個表(table2)的表(table1)中,唯一的問題是table1包含設置為不允許空值的字段。 我是否需要在要從中提取數據並為其填充值的table2中創建這些字段?

示例非空字段:密碼

如果我沒有在查詢中包括該字段,則會收到錯誤消息,並且不會插入記錄,但是如果我在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中還有更多不為null的字段,並且我認為我不需要在表2中將它們創建為空白字段,並將它們插入查詢中並使用值來創建記錄。 有一個更好的方法嗎?

您不必創建字段,只需“選擇”默認值即可。 嘗試以下方法:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM