mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +03:00
93 lines
2.2 KiB
Plaintext
93 lines
2.2 KiB
Plaintext
--source include/have_innodb.inc
|
|
--source include/not_embedded.inc
|
|
--echo #
|
|
--echo # MDEV-17323: Backport INFORMATION_SCHEMA.CHECK_CONSTRAINTS to 10.2
|
|
--echo #
|
|
CREATE user boo1;
|
|
GRANT select,create,alter,drop on foo.* to boo1;
|
|
SHOW GRANTS for boo1;
|
|
CREATE user boo2;
|
|
create database foo;
|
|
# Connect with user boo1
|
|
CONNECT(con1,localhost, boo1,, foo);
|
|
|
|
SET check_constraint_checks=1;
|
|
CREATE TABLE t0
|
|
(
|
|
t int, check (t>32) # table constraint
|
|
) ENGINE=myisam;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
ALTER TABLE t0
|
|
ADD CONSTRAINT CHK_t0_t CHECK(t<100);
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
ALTER TABLE t0
|
|
DROP CONSTRAINT CHK_t0_t;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
ALTER TABLE t0
|
|
ADD CONSTRAINT CHECK(t<50);
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
CREATE TABLE t1
|
|
( t int CHECK(t>2), # field constraint
|
|
tt int,
|
|
CONSTRAINT CHECK (tt > 32), CONSTRAINT CHECK (tt <50),# autogenerated names table constraints
|
|
CONSTRAINT CHK_tt CHECK(tt<100) # named table constraint
|
|
) ENGINE=InnoDB;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
ALTER TABLE t1
|
|
DROP CONSTRAINT CHK_tt;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
CREATE TABLE t2
|
|
(
|
|
name VARCHAR(30) CHECK(CHAR_LENGTH(name)>2), #field constraint
|
|
start_date DATE,
|
|
end_date DATE,
|
|
CONSTRAINT CHK_dates CHECK(start_date IS NULL) #table constraint
|
|
)ENGINE=Innodb;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
ALTER TABLE t1
|
|
ADD CONSTRAINT CHK_new_ CHECK(t>tt);
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
# Create table with same field and table check constraint name
|
|
CREATE TABLE t3
|
|
(
|
|
a int,
|
|
b int check (b>0), # field constraint named 'b'
|
|
CONSTRAINT b check (b>10) # table constraint
|
|
) ENGINE=InnoDB;
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
DISCONNECT con1;
|
|
CONNECT(con2, localhost, boo2,, test);
|
|
--sorted_result
|
|
SELECT * from information_schema.check_constraints;
|
|
|
|
DISCONNECT con2;
|
|
CONNECT(con1, localhost, boo1,,foo);
|
|
DROP TABLE t0;
|
|
DROP TABLE t1;
|
|
DROP TABLE t2;
|
|
DROP TABLE t3;
|
|
DROP DATABASE foo;
|
|
|
|
DISCONNECT con1;
|
|
--CONNECTION default
|
|
DROP USER boo1;
|
|
DROP USER boo2;
|