Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Adicionar uma nova coluna em todas as tabelas mysql


Não, realmente não há uma maneira de adicionar um campo a várias tabelas de uma só vez. Você precisará escrever um script para ele. Não deve ser um script difícil de escrever, no entanto:

Um simples SHOW TABLES query fornecerá uma lista de tabelas que você pode percorrer em PHP.

Dentro do loop, um SHOW COLUMNS FROM tablename query lhe dará os campos na tabela atual, que você pode usar para verificar se já tem o practiceId campo e, em seguida, adicione-o, se necessário.

Para adicionar o campo, use ALTER TABLE tablename ADD COLUMN practiceId INT (Eu assumi INT , mas substitua por, no entanto, seu campo precisa ser definido se você estiver usando um tipo de dados diferente)

Para adicionar um índice na nova coluna, você também pode usar ALTER TABLE , ou use CREATE INDEX . Para criar uma restrição de chave estrangeira use ALTER TABLE com ADD FOREIGN KEY argumento (Mas acredito que isso só funciona com tabelas InnoDB).

Referência: