Jump to content

Archived

This topic is now archived and is closed to further replies.

Cerrito

Alter Table...

Recommended Posts

Estava aqui pensando e me dei conta de como é chato depois de ter criado uma tabela descobrir que precisamos modificar a estrutura dela...Horrivel isso, mas ainda bem que temos o comando ALTER TABLE para nos auxiliar...então vamos a ele...O que podemos fazer com ele?Por exemplo, você pode adicionar ou deletar colunas, criar ou remover índices, alterar o tipo de coluna existentes, ou renomear coluna ou tabelas, vamos a alguns exemplos...Renomeando uma colunavamos supor que temo uma tabela chamada produtos (nossa que original...)e nessa mesma tabela temos uma coluna chamada mome... isso mesmo na hora de criar digitei mome ao invés de nome, para corrigir é simples...ALTER TABLE produtos CHANGE mome nome varchar(30);Note que temos que informar o tipo da coluna mesmo que ele não seja alterado... aproveitando...digamos que queremos trocar apenas o tipo da coluna, digamos que varchar(30) não é o suficiente...queremos mais...para isso é simples basta...ALTER TABLE produtos CHANGE nome nome varchar(50);notem que devemos informar duas vezes o nome da coluna mesmo quando não o iremos trocar...nesse caso apenas o repeti...podemos trocar de varchar para int por exemplo usando o mesmo exemplo...Trocar o nome da tabela é mais simples ainda...ALTER TABLE Caru RENAME Cerrito;obs: Caru era o nome da minha cidade ai trocaram para Cerrito... tá e dai!!! esse foi simples né...Acrescentado mais uma coluna, esse preciso sempre... rs...ALTER TABLE produtos ADD vendedor varchar(30);Para remover uma coluna : ALTER TABLE produtos DROP COLUMN vendedor;lembrando pessoal que para visualizar essas e outras alterações nas tabelas basta dar o comandodescribe nome da tabela;Bom pessoal espero que esses comandos sejam uteis a todos como é para mim abraçosMarcioreferência manual on-line do MySQL

Share this post


Link to post
Share on other sites

Amigo, queria lhe agradecer por este tópico. Estava precisando da sintaxe pra alterar no nome de um campo e não estava acertando de jeito nenhum. Inscrevi-me em 4 fóruns e nada...por acaso entrei neste, e nem precisei perguntar...Um grande abraço.Christiano Rios

Share this post


Link to post
Share on other sites

Se você pretende modificar alguma propriedade de um campo com ALTER TABLE é melhor usar o MODIFY no lugar do CHANGE, apesar de mudar apenas uma coisa: você não precisa mencionar o nome do campo 2 vezes.

Share this post


Link to post
Share on other sites

Disponha Kara, que bom que lhe foi util e Justice, bela dica a sua...abraçosMarcio

Share this post


Link to post
Share on other sites

Uma pergunta, no PHP ADMIN, se você quiser adicionar uma coluna a mais, ele da a opção de você adicionar antes de tal coluna exemploID NOMESOBRENOMEIDADEquero inserir a coluna EMAIL, dai ele da a opção de escolher antes de qual coluna inserir, dai escolho antes de idade, ee insere e fica assimID NOMESOBRENOMEEMAILIDADEExiste como fazer isso por comando SQL, escolher aonde vai ser inserido a coluna ?Só curiosidade mesmo =)Abraçosss

Share this post


Link to post
Share on other sites

Sim amigo...Depois de uma coluna:

ALTER TABLE nome_da_tabela ADD COLUMN definição AFTER nome_coluna

Ou antes:

ALTER TABLE nome_da_tabela ADD COLUMN definição FIRST nome_coluna

No MySQL Versão 3.22 ou posterior você pode utilizar FIRST ou ADD ... AFTER nome_col para aadicionar uma coluna em uma posição específica na linha da tabela. O padrão é adicionar a coluna no fim. A partir do MySQL Versão 4.0.1, você pode também utilizar as palavras-chave FIRST e AFTER em CHANGE ou MODIFY.

Share this post


Link to post
Share on other sites

Uma dúvida:Qtas tabelasDIFERENTES, pra funcao diferente posso criar num unico banco MYSQL?Uso o MYSQL Front....tem algum jeito de alterar diretamente o codigo fonte de determinada tabela? Em qual comando posso editar o source code usando o mysqlfront? Nao to conseguindo mexer direto no codigo fonte das tabelas que crio e para fazer exemplos do forum ta complicado....Obrigada!

Estava aqui pensando e me dei conta de como é chato depois de ter criado uma tabela descobrir que precisamos modificar a estrutura dela...Horrivel isso, mas ainda bem que temos o comando ALTER TABLE para nos auxiliar...então vamos a ele...O que podemos fazer com ele?Por exemplo, você pode adicionar ou deletar colunas, criar ou remover índices, alterar o tipo de coluna existentes, ou renomear coluna ou tabelas, vamos a alguns exemplos...Renomeando uma colunavamos supor que temo uma tabela chamada produtos (nossa que original...)e nessa mesma tabela temos uma coluna chamada mome... isso mesmo na hora de criar digitei mome ao invés de nome, para corrigir é simples...ALTER TABLE produtos CHANGE mome nome varchar(30);Note que temos que informar o tipo da coluna mesmo que ele não seja alterado... aproveitando...digamos que queremos trocar apenas o tipo da coluna, digamos que varchar(30) não é o suficiente...queremos mais...para isso é simples basta...ALTER TABLE produtos CHANGE nome nome varchar(50);notem que devemos informar duas vezes o nome da coluna mesmo quando não o iremos trocar...nesse caso apenas o repeti...podemos trocar de varchar para int por exemplo usando o mesmo exemplo...Trocar o nome da tabela é mais simples ainda...ALTER TABLE Caru RENAME Cerrito;obs: Caru era o nome da minha cidade ai trocaram para Cerrito... tá e dai!!! esse foi simples né...Acrescentado mais uma coluna, esse preciso sempre... rs...ALTER TABLE produtos ADD vendedor varchar(30);Para remover uma coluna : ALTER TABLE produtos DROP COLUMN vendedor;lembrando pessoal que para visualizar essas e outras alterações nas tabelas basta dar o comandodescribe nome da tabela;Bom pessoal espero que esses comandos sejam uteis a todos como é para mim abraçosMarcioreferência manual on-line do MySQL

Uma dúvida:Qtas tabelasDIFERENTES, pra funcao diferente posso criar num unico banco MYSQL?Uso o MYSQL Front....tem algum jeito de alterar diretamente o codigo fonte de determinada tabela? Em qual comando posso editar o source code usando o mysqlfront? Nao to conseguindo mexer direto no codigo fonte das tabelas que crio e para fazer exemplos do forum ta complicado....Obrigada!

Estava aqui pensando e me dei conta de como é chato depois de ter criado uma tabela descobrir que precisamos modificar a estrutura dela...Horrivel isso, mas ainda bem que temos o comando ALTER TABLE para nos auxiliar...então vamos a ele...O que podemos fazer com ele?Por exemplo, você pode adicionar ou deletar colunas, criar ou remover índices, alterar o tipo de coluna existentes, ou renomear coluna ou tabelas, vamos a alguns exemplos...Renomeando uma colunavamos supor que temo uma tabela chamada produtos (nossa que original...)e nessa mesma tabela temos uma coluna chamada mome... isso mesmo na hora de criar digitei mome ao invés de nome, para corrigir é simples...ALTER TABLE produtos CHANGE mome nome varchar(30);Note que temos que informar o tipo da coluna mesmo que ele não seja alterado... aproveitando...digamos que queremos trocar apenas o tipo da coluna, digamos que varchar(30) não é o suficiente...queremos mais...para isso é simples basta...ALTER TABLE produtos CHANGE nome nome varchar(50);notem que devemos informar duas vezes o nome da coluna mesmo quando não o iremos trocar...nesse caso apenas o repeti...podemos trocar de varchar para int por exemplo usando o mesmo exemplo...Trocar o nome da tabela é mais simples ainda...ALTER TABLE Caru RENAME Cerrito;obs: Caru era o nome da minha cidade ai trocaram para Cerrito... tá e dai!!! esse foi simples né...Acrescentado mais uma coluna, esse preciso sempre... rs...ALTER TABLE produtos ADD vendedor varchar(30);Para remover uma coluna : ALTER TABLE produtos DROP COLUMN vendedor;lembrando pessoal que para visualizar essas e outras alterações nas tabelas basta dar o comandodescribe nome da tabela;Bom pessoal espero que esses comandos sejam uteis a todos como é para mim abraçosMarcioreferência manual on-line do MySQL

Share this post


Link to post
Share on other sites

Quanto ao limite de tabelas, encontrei somente isso no manual:

Escalabilidade e limites Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos de dados que contém 50.000.000 registros e sabemos de usuários que usam o Servidor MySQL com 60.000 tabelas e aproximadamente 5.000.000.000 de linhas. São permitidos até 32 índices por tabela. Cada índice pode ser composto de 1 a 16 colunas ou partes de colunas. O tamanho máximo do índice é de 500 bytes (isto pode ser alterado na compilação do MySQL). Um índice pode usar o prefixo de campo com um tipo CHAR ou VARCHAR.

Pelo mysqlfront você pode executar uma query na parte de SQL na aba, aonde tem a parte de executar, importar arquivo com dados, etc.

Share this post


Link to post
Share on other sites

Me ajudem ai por favor.Tenho uma tabela e gostaria de estar modificando uma coluna no caso o ID para auto-incrementy.Qual o comando que eu devo usar?

Share this post


Link to post
Share on other sites

Eu a um tepo atrás dei este comando de criação em minha tabela:

 

"CREATE TABLE fornecedores (	id SMALLINT UNSIGNED NULL AUTO_INCREMENT,	nome varchar(80) NOT NULL,	razao varchar(80) NOT NULL,	contato varchar(50) NULL,	cnpj char(18) NULL,	ie varchar(22) NULL,	endereco varchar(80) NULL,	bairro varchar(30) NULL,	municipio varchar(30) NOT NULL,	uf char(2) NOT NULL,	cep char(9) NULL,	telefone char(12) NOT NULL,	fax char(12) NULL,	celular char(12) NULL,	email varchar(30) NULL,	obs varchar (255) NULL,	grupo_forn char(1) NULL,	registro_data TIMESTAMP(14) NULL,	registro_usuario char (10) NULL,	PRIMARY KEY(id)	)"

E agora quero fazer algumas modificações:

 

- Quero tornar a coluna NOME também como primárrio, juntamente com ID (que já é);

- Preciso adicionar CHAVE ESTRANGEIRA agora nela, não encotrei nenhum exemplo de ALTER TABLE com chave estrageira.

 

O código da chave estrangeira seria este, caso eu cirasse a tabela agora.

 

INDEX (grupo_forn),

FOREIGN KEY (grupo_forn)

REFERENCES fornecedores_grupo_forn(id)

ON UPDATE CASCADE ON DELETE SET NULL,

 

Como faço pra alterar a propriedade da coluna "grupo_forn"

 

abçs

Share this post


Link to post
Share on other sites

o comando é esse

 

ALTER TABLE imagem ADD FOREIGN KEY ( fk_foto ) REFERENCES foto( id )

mas para mim da o seguinte erro que não sei oque pode ser!

 

#1072 - Key column 'fk_foto' doesn't exist in table

espero respostas Obrigado!

Share this post


Link to post
Share on other sites

o comando é esse

 

ALTER TABLE imagem ADD FOREIGN KEY ( fk_foto ) REFERENCES foto( id )

mas para mim da o seguinte erro que não sei oque pode ser!

 

#1072 - Key column 'fk_foto' doesn't exist in table

espero respostas Obrigado!

 

A coluna fk_foto não existe na tabela imagem.

 

Reveja seu comando.

 

Happy MySQL'ing! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.