mirror of
https://github.com/MariaDB/server.git
synced 2025-08-23 03:54:27 +03:00
results in ERROR 1046 (3D000) at line 13: No database selected. Use database from create table to foreign key database if nothing else is given.
168 lines
3.9 KiB
Plaintext
168 lines
3.9 KiB
Plaintext
--source include/have_innodb.inc
|
|
--source include/not_embedded.inc
|
|
|
|
--echo #
|
|
--echo # Bug #18806829 OPENING INNODB TABLES WITH MANY FOREIGN KEY
|
|
--echo # REFERENCES IS SLOW/CRASHES SEMAPHORE
|
|
--echo #
|
|
|
|
create table t1 (f1 int primary key) engine=innodb;
|
|
insert into t1 values (5);
|
|
insert into t1 values (2882);
|
|
insert into t1 values (10);
|
|
|
|
let $fk_tables = 120;
|
|
|
|
--disable_query_log
|
|
let $i = $fk_tables;
|
|
while ($i)
|
|
{
|
|
eval create table fk_$i (f1 int primary key,
|
|
constraint pc$i foreign key (f1) references t1(f1)
|
|
on delete cascade on update cascade) engine=innodb;
|
|
eval insert into fk_$i values (5);
|
|
eval insert into fk_$i values (2882);
|
|
eval insert into fk_$i values (10);
|
|
dec $i;
|
|
}
|
|
--enable_query_log
|
|
|
|
--source include/restart_mysqld.inc
|
|
|
|
update t1 set f1 = 28 where f1 = 2882;
|
|
|
|
select * from fk_120;
|
|
select * from fk_1;
|
|
select * from fk_50;
|
|
|
|
--disable_query_log
|
|
let $i = $fk_tables;
|
|
while ($i)
|
|
{
|
|
eval drop table fk_$i;
|
|
dec $i;
|
|
}
|
|
--enable_query_log
|
|
|
|
drop table t1;
|
|
|
|
--echo #
|
|
--echo # Check if restrict is working fine.
|
|
--echo #
|
|
|
|
create table t1 (f1 int primary key) engine=innodb;
|
|
|
|
let $fk_tables = 30;
|
|
|
|
--disable_query_log
|
|
let $i = $fk_tables;
|
|
while ($i)
|
|
{
|
|
eval create table fk_$i (f1 int primary key,
|
|
constraint pc$i foreign key (f1) references t1(f1)
|
|
on delete restrict on update restrict) engine=innodb;
|
|
eval insert into t1 values ($i);
|
|
eval insert into fk_$i values ($i);
|
|
dec $i;
|
|
}
|
|
--enable_query_log
|
|
|
|
--source include/restart_mysqld.inc
|
|
|
|
--error ER_ROW_IS_REFERENCED_2
|
|
delete from t1 where f1 = 29;
|
|
select * from fk_29;
|
|
|
|
--disable_query_log
|
|
let $i = $fk_tables;
|
|
while ($i)
|
|
{
|
|
eval drop table fk_$i;
|
|
dec $i;
|
|
}
|
|
--enable_query_log
|
|
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-7672: Crash creating an InnoDB table with foreign keys
|
|
#
|
|
|
|
CREATE TABLE t1 (
|
|
id int(11) NOT NULL AUTO_INCREMENT,
|
|
f1 int(11) DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk1 FOREIGN KEY (f1) REFERENCES t1 (id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
--error 1005
|
|
CREATE TABLE t2 (
|
|
id int(11) NOT NULL AUTO_INCREMENT,
|
|
f2 int(11) NOT NULL,
|
|
f3 int(11) NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE,
|
|
CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
show warnings;
|
|
|
|
CREATE TABLE t2 (
|
|
id int(11) NOT NULL AUTO_INCREMENT,
|
|
f2 int(11) NOT NULL,
|
|
f3 int(11) NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/
|
|
--error 1005
|
|
ALTER TABLE t2 ADD CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE;
|
|
|
|
--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/
|
|
show warnings;
|
|
|
|
drop table t2;
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-9142 :Adding Constraint with no database reference
|
|
# results in ERROR 1046 (3D000) at line 13: No database selected
|
|
#
|
|
CREATE DATABASE kg_test1;
|
|
CREATE DATABASE kg_test2;
|
|
|
|
CREATE TABLE `kg_test1`.`group` (
|
|
Id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
|
|
|
CREATE TABLE `kg_test1`.`person` (
|
|
`Id` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`Name` VARCHAR(50) NOT NULL,
|
|
PRIMARY KEY (`Id`),
|
|
CONSTRAINT `fk_person_group` FOREIGN KEY (`Id`) REFERENCES `group` (`Id`)
|
|
) ENGINE=INNODB DEFAULT CHARSET=utf8;
|
|
|
|
show create table `kg_test1`.`person`;
|
|
|
|
--error 1005
|
|
CREATE TABLE `kg_test2`.`person2` (
|
|
`Id` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`Name` VARCHAR(50) NOT NULL,
|
|
PRIMARY KEY (`Id`),
|
|
CONSTRAINT `fk_person_group` FOREIGN KEY (`Id`) REFERENCES `group` (`Id`)
|
|
) ENGINE=INNODB DEFAULT CHARSET=utf8;
|
|
|
|
CREATE TABLE `kg_test2`.`person2` (
|
|
`Id` INT(11) NOT NULL AUTO_INCREMENT,
|
|
`Name` VARCHAR(50) NOT NULL,
|
|
PRIMARY KEY (`Id`),
|
|
CONSTRAINT `fk_person_group` FOREIGN KEY (`Id`) REFERENCES `kg_test1`.`group` (`Id`)
|
|
) ENGINE=INNODB DEFAULT CHARSET=utf8;
|
|
|
|
show create table `kg_test2`.`person2`;
|
|
|
|
SHOW WARNINGS;
|
|
DROP DATABASE kg_test2;
|
|
DROP DATABASE kg_test1;
|