script per tutti i campi di database:
SELECT
table_name,
column_name,
CONCAT('ALTER TABLE `',
table_name,
'` CHANGE `',
column_name,
'` `',
column_name,
'` ',
column_type,
' ',
IF(is_nullable = 'YES', '' , 'NOT NULL '),
IF(column_default IS NOT NULL, concat('DEFAULT ', IF(column_default = 'CURRENT_TIMESTAMP', column_default, CONCAT('\'',column_default,'\'')), ' '), ''),
IF(column_default IS NULL AND is_nullable = 'YES' AND column_key = '' AND column_type = 'timestamp','NULL ', ''),
IF(column_default IS NULL AND is_nullable = 'YES' AND column_key = '','DEFAULT NULL ', ''),
extra,
' COMMENT \'',
column_comment,
'\' ;') as script
FROM
information_schema.columns
WHERE
table_schema = 'my_database_name'
ORDER BY table_name , column_name
- Esporta tutto in un file CSV
- aprirlo nel csv preferito edi tor
Nota: È possibile migliorare ad un solo tavolo, se si preferisce
La soluzione data dalla @Rufinus è grande, ma se si hanno incrementi di auto si romperà esso.
Sembra funzionare correttamente, ma esiste un altro modo per farlo senza includere la definizione della colonna? –
ho giocato in giro, ma non ha funzionato. questo era il set minimo, forse c'è un altro modo. – Rufinus
Questa soluzione può interrompere gli incrementi automatici. – workdreamer