mirror of
https://github.com/MariaDB/server.git
synced 2025-09-13 13:47:59 +03:00
63 lines
1.3 KiB
Plaintext
63 lines
1.3 KiB
Plaintext
#
|
|
# Test Foreign Key with SR
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
|
|
CREATE TABLE grandparent (
|
|
id INT NOT NULL PRIMARY KEY
|
|
) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE parent (
|
|
id INT NOT NULL PRIMARY KEY,
|
|
grandparent_id INT,
|
|
FOREIGN KEY (grandparent_id)
|
|
REFERENCES grandparent(id)
|
|
ON UPDATE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE child (
|
|
id INT NOT NULL PRIMARY KEY,
|
|
grandparent_id INT,
|
|
FOREIGN KEY (grandparent_id)
|
|
REFERENCES parent(grandparent_id)
|
|
ON UPDATE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
INSERT INTO grandparent VALUES (1),(2),(3),(4);
|
|
INSERT INTO parent VALUES (1,1), (2,2);
|
|
INSERT INTO child VALUES (1,1), (2,2);
|
|
|
|
# Start and SR transaction
|
|
|
|
--connection node_1
|
|
SET AUTOCOMMIT=OFF;
|
|
SET SESSION wsrep_trx_fragment_size = 1;
|
|
START TRANSACTION;
|
|
|
|
UPDATE grandparent SET id = 5 WHERE id = 1;
|
|
|
|
# No conflicting transactions are allowed to proceed on slave
|
|
|
|
--connection node_2
|
|
SET SESSION innodb_lock_wait_timeout = 1;
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
UPDATE grandparent SET id = 10 WHERE id = 5;
|
|
|
|
--error ER_LOCK_WAIT_TIMEOUT
|
|
DELETE FROM child;
|
|
|
|
# SR transaction succesffull
|
|
|
|
--connection node_1
|
|
COMMIT;
|
|
|
|
--let $diff_servers = 1 2
|
|
--source include/diff_servers.inc
|
|
|
|
DROP TABLE child;
|
|
DROP TABLE parent;
|
|
DROP TABLE grandparent;
|