簡體   English   中英

Mysql多次插入查詢

[英]Mysql multiple insert query

關於mysql數據插入,我遇到了以下問題。 這里的電子郵件字段不能為空。 在執行以下查詢(查詢1和2)時,我們期待錯誤。 但是查詢1給出了錯誤,查詢2給出了成功。

表結構

CREATE TABLE `users` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(100) NOT NULL,
 `email` varchar(100) NOT NULL,
 PRIMARY KEY (`id`),
 KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1

查詢1:

INSERT INTO `users` (`id`, `name`, `email`) VALUES (NULL, 'manu', NULL);

結果: - #1048 - 列'email'不能為空

查詢2:

INSERT INTO `users` (`id`, `name`, `email`)
VALUES (NULL, 'manu', NULL),(NULL, 'Jose', NULL);

結果:插入了-2行。

兩個查詢都返回成功。

查詢中是否有錯誤? 任何想法將不勝感激。

文檔

將NULL插入已聲明為NOT NULL的列中。 對於多行INSERT語句或INSERT INTO ... SELECT語句,該列設置為列數據類型的隱式默認值。 數字類型為0,字符串類型為空字符串(''),日期和時間類型為“零”值。 INSERT INTO ... SELECT語句的處理方式與多行插入相同,因為服務器不會檢查SELECT中的結果集以查看它是否返回單行。 (對於單行INSERT,將NULL插入NOT NULL列時不會發生警告。而是語句失敗並顯示錯誤。)

暫無
暫無

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

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