Description:
"13.1.8 ALTER TABLE Syntax" chapter in the "MySQL 5.7 Reference Manual" was describe as following:
...
index_col_name:
col_name [(length)] [ASC | DESC]
...
An index_col_name specification can end with ASC or DESC. These keywords are permitted for future extensions for specifying ascending or descending index value storage. Currently, they are parsed but ignored; index values are always stored in ascending order.
...
In a word, in "index_col_name" syntax, "col_name" can be combined with "ASC" or "DESC", and it will not gonna be a problem.
Actually, i get back an error message "ERROR 1215 (HY000): Cannot add foreign key constraint".
How to repeat:
use test;
create table Table_Parent_ALTER_TABLE_FOREIGN_008(C_ID INT,C_D_ID INTEGER NOT NULL,C_W_ID BIGINT NOT NULL,C_DOUBLE DOUBLE NOT NULL,C_DECIMAL DECIMAL NOT NULL,C_FIRST VARCHAR(64) NOT NULL,C_MIDDLE CHAR(2),C_LAST VARCHAR(64) NOT NULL,C_STREET_1 VARCHAR(20) NOT NULL,C_STREET_2 VARCHAR(20),C_CITY VARCHAR(64) NOT NULL,C_STATE CHAR(2) NOT NULL,C_ZIP CHAR(9) NOT NULL,C_PHONE CHAR(16) NOT NULL,C_SINCE TIMESTAMP,C_CREDIT CHAR(2) NOT NULL,C_CREDIT_LIM NUMERIC(12,2),C_DISCOUNT NUMERIC(4,4),C_BALANCE NUMERIC(12,2),C_YTD_PAYMENT REAL NOT NULL,C_PAYMENT_CNT FLOAT NOT NULL,C_DELIVERY_CNT BOOLEAN NOT NULL,C_END DATE NOT NULL,C_VCHAR VARCHAR(1000),C_DATA TEXT,C_TEXT BLOB,C_TINYTEXT TINYTEXT,C_MEDIUMBLOB MEDIUMBLOB,C_LONGBLOB LONGBLOB,UNIQUE(C_ID,C_D_ID,C_W_ID));
create table Table_Child_ALTER_TABLE_FOREIGN_008(C_ID INT DEFAULT NULL,C_D_ID INTEGER NOT NULL,C_W_ID BIGINT NOT NULL,C_DOUBLE DOUBLE NOT NULL,C_DECIMAL DECIMAL NOT NULL,C_FIRST VARCHAR(64) NOT NULL,C_MIDDLE CHAR(2),C_LAST VARCHAR(64) NOT NULL,C_STREET_1 VARCHAR(20) NOT NULL,C_STREET_2 VARCHAR(20),C_CITY VARCHAR(64) NOT NULL,C_STATE CHAR(2) NOT NULL,C_ZIP CHAR(9) NOT NULL,C_PHONE CHAR(16) NOT NULL,C_SINCE TIMESTAMP,C_CREDIT CHAR(2) NOT NULL,C_CREDIT_LIM NUMERIC(12,2),C_DISCOUNT NUMERIC(4,4),C_BALANCE NUMERIC(12,2),C_YTD_PAYMENT REAL NOT NULL,C_PAYMENT_CNT FLOAT NOT NULL,C_DELIVERY_CNT BOOLEAN NOT NULL,C_END DATE NOT NULL,C_VCHAR VARCHAR(1000),C_DATA TEXT,C_TEXT BLOB,C_TINYTEXT TINYTEXT,C_MEDIUMBLOB MEDIUMBLOB,C_LONGBLOB LONGBLOB);
ALTER TABLE Table_Child_ALTER_TABLE_FOREIGN_008 ADD FOREIGN KEY (C_ID ASC) REFERENCES Table_Parent_ALTER_TABLE_FOREIGN_008 (C_ID) MATCH SIMPLE ON UPDATE SET NULL;
ALTER TABLE Table_Child_ALTER_TABLE_FOREIGN_008 ADD FOREIGN KEY (C_ID DESC REFERENCES Table_Parent_ALTER_TABLE_FOREIGN_008 (C_ID) MATCH SIMPLE ON UPDATE SET NULL;
ALTER TABLE Table_Child_ALTER_TABLE_FOREIGN_008 ADD FOREIGN KEY (C_ID) REFERENCES Table_Parent_ALTER_TABLE_FOREIGN_008 (C_ID) MATCH SIMPLE ON UPDATE SET NULL;