After creating a table with a connection string, if ALTER TABLE is used, the connection string is lost. For instance:
CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC tabname='lite' CONNECTION='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes' CHARSET=utf8 DATA_CHARSET=utf8;
|
|
SHOW CREATE TABLE t1;
|
CREATE TABLE `t1` (
|
`ID` int(9) DEFAULT NULL,
|
`nom` varchar(12) NOT NULL,
|
`nais` datetime DEFAULT NULL,
|
`rem` varchar(32) DEFAULT NULL
|
) ENGINE=CONNECT DEFAULT CHARSET=utf8 CONNECTION='Driver=SQLite3 ODBC Driver;Database=test.sqlite3;NoWCHAR=yes' `TABLE_TYPE`='ODBC' `TABNAME`='lite' `DATA_CHARSET`='utf8'
|
Now if I do:
ALTER TABLE t1 MODIFY COLUMN nom VARCHAR(13) NOT NULL;
|
SHOW CREATE TABLE t1;
|
CREATE TABLE `t1` (
|
`ID` int(9) DEFAULT NULL,
|
`nom` varchar(13) NOT NULL,
|
`nais` datetime DEFAULT NULL,
|
`rem` varchar(32) DEFAULT NULL
|
) ENGINE=CONNECT DEFAULT CHARSET=utf8 `TABLE_TYPE`='ODBC' `TABNAME`='lite' `DATA_CHARSET`='utf8';
|
This has not been reported before CONNECT was implemented because the only other engine using connection string was FEDERATED(X) that does not support ALTER TABLE.