60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
| -- source include/have_ndb.inc
 | |
| 
 | |
| 
 | |
| create table product (
 | |
|   category int not null,
 | |
|   id int not null,
 | |
|   price decimal,
 | |
|   primary key(category, id))
 | |
| engine=ndb;
 | |
| 
 | |
| create table customer (
 | |
|   id int not null,
 | |
|   primary key (id))
 | |
| engine=ndb;
 | |
| 
 | |
| create table product_order (
 | |
|   no int not null auto_increment,
 | |
|   product_category int not null,
 | |
|   product_id int not null,
 | |
|   customer_id int not null,
 | |
|   primary key(no),
 | |
|   index (product_category, product_id),
 | |
|   constraint fk1
 | |
|   foreign key (product_category, product_id) references product(category, id)
 | |
|     on update restrict on delete cascade,
 | |
|   index (customer_id),
 | |
|   constraint fk2
 | |
|   foreign key (customer_id) references customer(id))
 | |
| engine=ndb;
 | |
| 
 | |
| --disable_warnings
 | |
| show create table product;
 | |
| show create table customer;
 | |
| show create table product_order;
 | |
| --enable_warnings
 | |
| 
 | |
| insert into product values (1,1,5);
 | |
| insert into customer value (1);
 | |
| insert into product_order value (1,1,1,1);
 | |
| 
 | |
| let $dump_file = $MYSQLTEST_VARDIR/tmp/ndb_fk_dump.sql;
 | |
| --exec $MYSQL_DUMP --databases test > $dump_file
 | |
| 
 | |
| # bug#16286164: the fix exposes DROP order problem
 | |
| if (1)
 | |
| {
 | |
| drop table product_order, customer, product;
 | |
| }
 | |
| 
 | |
| --exec $MYSQL test < $dump_file
 | |
| 
 | |
| --disable_warnings
 | |
| show create table product;
 | |
| show create table customer;
 | |
| show create table product_order;
 | |
| --enable_warnings
 | |
| 
 | |
| drop table product_order, customer, product;
 | |
| --remove_file $dump_file
 |