set global innodb_file_per_table = 1;
drop table if exists b;
drop database if exists bug_fk;
create database bug_fk;
use bug_fk;
CREATE TABLE b (
b int unsigned NOT NULL,
d1 datetime NOT NULL,
PRIMARY KEY (b,d1)
) ENGINE=InnoDB;
CREATE TABLE c (
b int unsigned NOT NULL,
d1 datetime NOT NULL,
d2 datetime NOT NULL,
PRIMARY KEY (b,d1),
CONSTRAINT b_fk FOREIGN KEY (b) REFERENCES b (b)
) ENGINE=InnoDB;
show warnings;
Level	Code	Message
set foreign_key_checks = 0;
DROP TABLE IF EXISTS b;
show create table c;
Table	Create Table
c	CREATE TABLE `c` (
  `b` int(10) unsigned NOT NULL,
  `d1` datetime NOT NULL,
  `d2` datetime NOT NULL,
  PRIMARY KEY (`b`,`d1`),
  CONSTRAINT `b_fk` FOREIGN KEY (`b`) REFERENCES `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE b (
b bigint unsigned NOT NULL,
d1 date NOT NULL,
PRIMARY KEY (b,d1)
) ENGINE=InnoDB;
ERROR HY000: Can't create table 'bug_fk.b' (errno: 150)
show warnings;
Level	Code	Message
Error	1005	Can't create table 'bug_fk.b' (errno: 150)
DROP TABLE IF EXISTS d;
Warnings:
Note	1051	Unknown table 'd'
CREATE TABLE d (
b bigint unsigned NOT NULL,
d1 date NOT NULL,
PRIMARY KEY (b,d1),
CONSTRAINT bd_fk FOREIGN KEY (b) REFERENCES b (b)
) ENGINE=InnoDB;
show warnings;
Level	Code	Message
set foreign_key_checks = 1;
show create table c;
Table	Create Table
c	CREATE TABLE `c` (
  `b` int(10) unsigned NOT NULL,
  `d1` datetime NOT NULL,
  `d2` datetime NOT NULL,
  PRIMARY KEY (`b`,`d1`),
  CONSTRAINT `b_fk` FOREIGN KEY (`b`) REFERENCES `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
show create table d;
Table	Create Table
d	CREATE TABLE `d` (
  `b` bigint(20) unsigned NOT NULL,
  `d1` date NOT NULL,
  PRIMARY KEY (`b`,`d1`),
  CONSTRAINT `bd_fk` FOREIGN KEY (`b`) REFERENCES `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE b (
b bigint unsigned NOT NULL,
d1 date NOT NULL,
PRIMARY KEY (b,d1)
) ENGINE=InnoDB;
ERROR HY000: Can't create table 'bug_fk.b' (errno: 150)
show warnings;
Level	Code	Message
Error	1005	Can't create table 'bug_fk.b' (errno: 150)
set foreign_key_checks=0;
drop table c;
drop table d;
create table b(id int) engine=innodb;
show warnings;
Level	Code	Message
b.frm
b.ibd
drop table if exists b;
drop database if exists bug_fk;
