diff options
Diffstat (limited to 'mysql-test/main/constraints.test')
-rw-r--r-- | mysql-test/main/constraints.test | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/mysql-test/main/constraints.test b/mysql-test/main/constraints.test new file mode 100644 index 00000000000..1997c23bfa9 --- /dev/null +++ b/mysql-test/main/constraints.test @@ -0,0 +1,79 @@ +# +# Testing of constraints +# +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1 (a int check (a>0)); +show create table t1; +insert into t1 values (1); +--error ER_CONSTRAINT_FAILED +insert into t1 values (0); +drop table t1; +create table t1 (a int, b int, check (a>b)); +show create table t1; +insert into t1 values (1,0); +--error ER_CONSTRAINT_FAILED +insert into t1 values (0,1); +drop table t1; +create table t1 (a int ,b int, constraint abc check (a>b)); +show create table t1; +insert into t1 values (1,0); +--error ER_CONSTRAINT_FAILED +insert into t1 values (0,1); +drop table t1; +create table t1 (a int null); +show create table t1; +insert into t1 values (1),(NULL); +drop table t1; +create table t1 (a int null); +alter table t1 add constraint constraint_1 unique (a); +alter table t1 add constraint unique key_1(a); +alter table t1 add constraint constraint_2 unique key_2(a); +show create table t1; +drop table t1; + +# End of 4.1 tests + +# +# Bug#35578 (Parser allows useless/illegal CREATE TABLE syntax) +# + +--disable_warnings +drop table if exists t_illegal; +--enable_warnings + +--error ER_PARSE_ERROR +create table t_illegal (a int, b int, check a>b); + +--error ER_PARSE_ERROR +create table t_illegal (a int, b int, constraint abc check a>b); + +--error ER_PARSE_ERROR +create table t_illegal (a int, b int, constraint abc); + +# +# Bug#11714 (Non-sensical ALTER TABLE ADD CONSTRAINT allowed) +# + +--disable_warnings +drop table if exists t_11714; +--enable_warnings + +create table t_11714(a int, b int); + +--error ER_PARSE_ERROR +alter table t_11714 add constraint cons1; + +drop table t_11714; + +# +# Bug#38696 (CREATE TABLE ... CHECK ... allows illegal syntax) + +--error ER_PARSE_ERROR +CREATE TABLE t_illegal (col_1 INT CHECK something (whatever)); + +--error ER_PARSE_ERROR +CREATE TABLE t_illegal (col_1 INT CHECK something); + |