簡體   English   中英

如何檢查 created_in 列是否在觸發器中?

[英]How can I check if the created_in column is none or not inside triggers?

用戶表中的列和觸發器結構

CREATE TABLE `users` (
 `created_in` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
扳機 事件 桌子 陳述 定時
... 插入 用戶 如果 NEW.created_in = "" 那么
信號 SQLSTATE "45000";
萬一

如果 created_in 列沒有但不起作用,我正在嘗試取消插入。

如何檢查 created_in 列是否為空?

MySQL的版本是5.7

不需要觸發,會話嚴格模式就足夠了:

 set session sql_mode = '';
 CREATE TABLE `users` ( `created_in` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; insert into users values (''); select * from users;
 |  created_in |
 |  :--------- |
 |  0000-00-00 |
set session sql_mode = 'STRICT_ALL_TABLES';
 insert into users values ('');
日期值不正確:第 1 行的列“created_in”的“”

db<> 在這里擺弄

暫無
暫無

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

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