Devart è corretto che non è possibile partecipare alla dichiarazione SHOW CREATE
. Tuttavia, a seconda delle esigenze specifiche, è possibile eseguire lo spoofing creando la propria istruzione SHOW CREATE
.
La complessità del codice aumenterà se è necessario includere il motore di database, le regole di confronto di colonne e tabelle, gli indici e così via. Tuttavia, l'SQL seguente fornirà la tabella ei campi corretti, completi di tipi di dati. Sono sicuro che puoi estenderlo ulteriormente esaminando il contenuto di information_schema.columns
in modo più approfondito.
SELECT CONCAT('CREATE TABLE `',t.TABLE_NAME,'` ',
GROUP_CONCAT(CONCAT(c.COLUMN_NAME,' ',c.COLUMN_TYPE,' ',c.EXTRA) SEPARATOR ','),';') AS CreateStatement
FROM information_schema.tables t
INNER JOIN information_schema.columns c
ON t.TABLE_NAME=c.TABLE_NAME
/* WHERE STATEMENT IF NEEDED */;
Esempio di output:
CREATE TABLE `answers` rowid int(11) auto_increment,
id int(11) ,username varchar(200) ,answer varchar(2000) ;