mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-11114 Cannot drop column referenced by CHECK constraint
SQL Standard behavior for DROP COLUMN xxx RESTRICT: * If a constraint (UNIQUE or CHECK) uses only the dropped column, it's automatically dropped too. If it uses many columns - an error.
This commit is contained in:
@ -780,48 +780,6 @@ alter table t add c INT GENERATED ALWAYS AS(a/b);
|
||||
create index idx on t(c);
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t (
|
||||
pk INTEGER AUTO_INCREMENT,
|
||||
col_int_nokey INTEGER /*! NULL */,
|
||||
col_int INT GENERATED ALWAYS AS (col_int_nokey + col_int_nokey) STORED,
|
||||
col_int_key INTEGER GENERATED ALWAYS AS (col_int + col_int_nokey) VIRTUAL,
|
||||
col_date_nokey DATE /*! NULL */,
|
||||
col_date DATE GENERATED ALWAYS AS (DATE_ADD(col_date_nokey,interval 30 day)) STORED,
|
||||
col_date_key DATE GENERATED ALWAYS AS (DATE_ADD(col_date,interval 30 day)) VIRTUAL,
|
||||
col_datetime_nokey DATETIME /*! NULL */,
|
||||
col_time_nokey TIME /*! NULL */,
|
||||
col_datetime DATETIME GENERATED ALWAYS AS (ADDTIME(col_datetime_nokey, col_time_nokey)) STORED,
|
||||
col_time TIME GENERATED ALWAYS AS (ADDTIME(col_datetime_nokey, col_time_nokey)) STORED,
|
||||
col_datetime_key DATETIME GENERATED ALWAYS AS (ADDTIME(col_datetime, col_time_nokey)) VIRTUAL,
|
||||
col_time_key TIME GENERATED ALWAYS AS (ADDTIME(col_datetime_nokey, col_time)) VIRTUAL,
|
||||
col_varchar_nokey VARCHAR(1) /*! NULL */,
|
||||
col_varchar VARCHAR(2) GENERATED ALWAYS AS (CONCAT(col_varchar_nokey,col_varchar_nokey)) STORED,
|
||||
col_varchar_key VARCHAR(2) GENERATED ALWAYS AS (CONCAT(col_varchar, 'x')) VIRTUAL,
|
||||
unique KEY (pk,col_int_key),
|
||||
KEY(col_int),
|
||||
KEY(col_date),
|
||||
KEY(col_datetime),
|
||||
KEY(col_time),
|
||||
KEY(col_varchar),
|
||||
UNIQUE KEY (col_int_key),
|
||||
KEY (col_time_key),
|
||||
KEY (col_datetime_key),
|
||||
UNIQUE KEY (col_int_key, col_varchar_key),
|
||||
KEY (col_int_key, col_int_nokey),
|
||||
KEY(col_int_key,col_date_key),
|
||||
KEY(col_int_key, col_time_key),
|
||||
KEY(col_int_key, col_datetime_key),
|
||||
KEY(col_date_key,col_time_key,col_datetime_key),
|
||||
KEY (col_varchar_key, col_varchar_nokey),
|
||||
UNIQUE KEY (col_int_key, col_varchar_key, col_date_key, col_time_key, col_datetime_key)
|
||||
) AUTO_INCREMENT=10 ENGINE=INNODB PARTITION BY KEY(col_int_key) PARTITIONS 3;
|
||||
|
||||
ALTER TABLE t DROP COLUMN `pk`;
|
||||
|
||||
SHOW CREATE TABLE t;
|
||||
|
||||
DROP TABLE t;
|
||||
|
||||
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
|
||||
|
||||
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
|
||||
|
Reference in New Issue
Block a user