69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
| -- source include/have_ndb.inc
 | |
| 
 | |
| create table parent (
 | |
|   a int primary key auto_increment,
 | |
|   b int,
 | |
|   c int,
 | |
|   unique(b) using hash,
 | |
|   index(c)) engine = ndb;
 | |
| 
 | |
| create table child (
 | |
|   a int primary key auto_increment,
 | |
|   b int,
 | |
|   c int,
 | |
|   unique(b) using hash,
 | |
|   index(c)) engine = ndb;
 | |
| 
 | |
| ###
 | |
| ### UK vs UK
 | |
| ###
 | |
| alter table child add constraint fkname foreign key (b) references parent(b) on delete restrict on update cascade;
 | |
| 
 | |
| insert into parent values (1,1,1), (2,2,2);
 | |
| insert into child values (1,1,1),(2,2,2);
 | |
| 
 | |
| begin;
 | |
| update parent set b = 1 where a = 1;
 | |
| select * from child order by 1,2,3;
 | |
| rollback;
 | |
| 
 | |
| begin;
 | |
| update parent set b = null where a = 1;
 | |
| select * from child order by 1,2,3;
 | |
| rollback;
 | |
| 
 | |
| begin;
 | |
| update parent set b = 3 where a = 1;
 | |
| select * from child order by 1,2,3;
 | |
| rollback;
 | |
| 
 | |
| delete from child;
 | |
| delete from parent;
 | |
| 
 | |
| alter table child drop foreign key fkname;
 | |
| 
 | |
| ###
 | |
| ### UK vs OI
 | |
| ###
 | |
| alter table child add constraint fkname foreign key (c) references parent(b) on delete restrict on update cascade;
 | |
| 
 | |
| insert into parent values (1,1,1),(2,2,2);
 | |
| insert into child values (1,1,1),(2,2,2),(3,3,1),(4,4,2);
 | |
| 
 | |
| begin;
 | |
| update parent set b = null where a = 1;
 | |
| select * from child order by 1,2,3;
 | |
| rollback;
 | |
| 
 | |
| begin;
 | |
| update parent set b = 3 where a = 1;
 | |
| select * from child order by 1,2,3;
 | |
| rollback;
 | |
| 
 | |
| delete from child;
 | |
| delete from parent;
 | |
| 
 | |
| alter table child drop foreign key fkname;
 | |
| 
 | |
| drop table parent, child;
 |