mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
ef8003eb9a
check_that_all_fields_are_given_values() relied on write_set, but was run too early, before triggers updated write_set. also, when triggers are present, fields might get values conditionally, so we need to check that all fields are given values for every row.
22 lines
483 B
Text
22 lines
483 B
Text
set sql_mode='strict_all_tables';
|
|
create table t1 (a int not null, b int);
|
|
insert t1 (b) values (1);
|
|
ERROR HY000: Field 'a' doesn't have a default value
|
|
create trigger trgi before insert on t1 for each row
|
|
case new.b
|
|
when 10 then
|
|
set new.a = new.b;
|
|
when 30 then
|
|
set new.a = new.a;
|
|
else
|
|
do 1;
|
|
end case|
|
|
insert t1 (b) values (10);
|
|
insert t1 (b) values (20);
|
|
ERROR HY000: Field 'a' doesn't have a default value
|
|
insert t1 (b) values (30);
|
|
select * from t1;
|
|
a b
|
|
10 10
|
|
0 30
|
|
drop table t1;
|