MySQL complaining about foreign key constraint inside CREATE TABLE -


i have following ~/mydb.sql file:

create database if not exists my_db character set utf8 collate utf8_general_ci; set default_storage_engine=innodb;  use my_db;  create table if not exists countries (     country_id bigint unsigned not null auto_increment,     country_name varchar(250) not null,     country_label varchar(250) not null,     country_description varchar(500) not null,     country_code varchar(25) not null,      constraint pk_countries primary key (country_id),     index idx_country_label (country_label),     index idx_country_code (country_code),     constraint uc_countries_name unique (country_name),     constraint uc_countries_label unique (country_label),     constraint uc_countries_desc unique (country_description),     constraint uc_country_code unique (country_code) );  create table if not exists states (     state_id bigint unsigned not null auto_increment,     state_name varchar(250) not null,     state_label varchar(250) not null,     state_description varchar(500) not null,     state_abbrev varchar(25) not null,      constraint pk_states primary key (state_id),     index idx_state_label (state_label),     index idx_state_abbrev (state_abbrev),     constraint uc_states_name unique (state_name),     constraint uc_states_label unique (state_label),     constraint uc_states_desc unique (state_description),     constraint uc_state_abbrev unique (state_abbrev) );  create table if not exists addresses (     address_id bigint unsigned not null auto_increment,     state_id bigint unsigned not null,     country_id bigint unsigned not null,     address_line_1 varchar(250) not null,     address_line_2 varchar(250),     address_line_3 varchar(250),     address_city varchar(250),     address_postal_code varchar(25) not null,      constraint pk_addresses primary key (address_id),     constraint fk_addresses_states_state_id foreign key state_id references states (state_id),     constraint fk_addresses_countries_country_id foreign key country_id references countries (country_id),     index idx_addresses_line1_postal (address_line_1, address_postal_code),     constraint uc_addresses_all unique (address_line_1, address_line_2, address_line_3, address_postal_code) ); 

when log mysql command line , run error on foreign key definition addresses table:

mysql> source ~/mydb.sql query ok, 2 rows affected (0.01 sec)  mysql> source ~/tmp/testdb.sql query ok, 1 row affected (0.00 sec)  query ok, 0 rows affected (0.00 sec)  database changed query ok, 0 rows affected (0.02 sec)  query ok, 0 rows affected (0.02 sec)  error 1064 (42000): have error in sql syntax; check manual corresponds mysql server version right syntax use near 'references states(state_id),     constraint fk_addresses_countries_country_id fo' @ line 12 

i've check , rechecked syntax , cannot figure out i'm going awry. can spot it?

try create table -

create table if not exists addresses (     address_id bigint unsigned not null auto_increment,     state_id bigint unsigned not null,     country_id bigint unsigned not null,     address_line_1 varchar(250) not null,     address_line_2 varchar(250),     address_line_3 varchar(250),     address_city varchar(250),     address_postal_code varchar(25) not null,      constraint pk_addresses primary key (address_id),     constraint fk_addresses_states_state_id foreign key (state_id) references states (state_id),     constraint fk_addresses_countries_country_id foreign key (country_id) references countries (country_id),     index idx_addresses_line1_postal (address_line_1, address_postal_code),     constraint uc_addresses_all unique (address_line_1, address_line_2, address_line_3, address_postal_code) ); 

problem brackets.


Comments

Popular posts from this blog

How to understand 2 main() functions after using uftrace to profile the C++ program? -

c# - Update a combobox from a presenter (MVP) -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -