我如何检查created_in列是否为none或不在触发器内?



用户表中的列和触发器结构

CREATE TABLE `users` (
`created_in` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
SIGNAL SQLSTATE " 45,000 ";

不需要触发,会话严格模式就足够了:

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 ('');
错误的日期值:" for column 'created_in' at row 1

db<此处小提琴>

最新更新