mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-17599 ALTER TABLE DROP CONSTRAINT does not work for foreign keys.
The list of table constraints doesn't include foreign keys and uniques. So we replace DROP CONSTRAINT with DROP [FOREIGN] KEY in this case.
This commit is contained in:
@ -2456,5 +2456,54 @@ ERROR 23000: Duplicate entry '1' for key 'i'
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-17599 ALTER TABLE DROP CONSTRAINT does not work for foreign keys.
|
||||
#
|
||||
CREATE TABLE t1(id INT PRIMARY KEY, c1 INT) ENGINE= INNODB;
|
||||
CREATE TABLE t2(id INT PRIMARY KEY, c1 INT, c2 INT NOT NULL,
|
||||
CONSTRAINT sid FOREIGN KEY (`c1`) REFERENCES t1 (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
|
||||
CONSTRAINT UNIQUE `ui`(c2)) ENGINE= INNODB;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`c1` int(11) DEFAULT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `ui` (`c2`),
|
||||
KEY `sid` (`c1`),
|
||||
CONSTRAINT `sid` FOREIGN KEY (`c1`) REFERENCES `t1` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t2 DROP CONSTRAINT sid;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`c1` int(11) DEFAULT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `ui` (`c2`),
|
||||
KEY `sid` (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t2 DROP CONSTRAINT ui;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`c1` int(11) DEFAULT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `sid` (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t2 DROP CONSTRAINT PRIMARY KEY;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`c1` int(11) DEFAULT NULL,
|
||||
`c2` int(11) NOT NULL,
|
||||
KEY `sid` (`c1`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2, t1;
|
||||
#
|
||||
# End of 10.2 tests
|
||||
#
|
||||
|
Reference in New Issue
Block a user