Primi passi con mysql

martedì 19 febbraio 2008 - 17.43

outis Profilo | Newbie

salve a tutti, sono nuovo di questo sito e di mysql (6.0.2.alpha)
Sto muovendo i primi passi, leggendo la documentazione ufficiale e guide su vari siti. Nonostanate io segua alla lettera i tutorial ho dei problemi nell'eseguire le varie istruzioni (per adesso DDL). Ho preparato alcune domande (sicuramente banali) abusando della vostra pazienza.Potreste aiutarmi a capire?
1) c'è un modo per rinominare il database (tipo: alter database <nomedb> rename <novomomedb>)?
2) alter table miatb drop (colonna1,colonna2); oppure :alter table miatb drop colonna1,colonna2; non funziona.
come faccioa a cancellare + campi in una volta sola visto che alter table miatb add (colonna1,colonna2); funziona per aggiungere + campi in una sola volta?
3) per rinominare una colonna utilizzando alter table miatb change campo1 nuovonomecampo1 varchar(10) devo per forza ridare le specifiche del campo?
4) alter table miatb drop primary key; non funziona se il campo primary key è auto_increment, perché?
ho dovuto cambiare il campo non con auto_increment e poi è stato possibile eseguire il comando. non capisco soprattutto perchè ho provato poi a ritrasformalo in auto_increment ma non me lo riconverte più.
5)ad una tabella senza primary key ho provato ad aggiungere un constraint unique con: alter table miatb add unique (id); comando eseguito ma faccio desc miatb1 e il campo id compare come primary, come mai? sapevo che unique e primary key erano diversi,il primo ammette valori nulli, o sbaglio? poi ho provato a cancellare con alter table miatb drop unique (id); il comando mi da errore.
Grande punto interrogativo.
Per piacere qualcuno mi può aiutare a capire? sbaglio io? sono dei bugs?
Volevo fare un corso di mysql o oracle o db2 , ma sono davvero troppo costosi.
Posso chiedere in questo forum chiarimenti?
Grazie per la pazienza .
_____________________________
provo a rispondermi da solo (della serie "si faccia una domanda,si dia una risposta, e fuori dai c......i"):
per quanto riguarda la 4 domanda forse ho capito. Un attributo "auto_increment":può essercene solo uno per tabella, non può avere valore nullo e valori uguali per cui è automaticamente "primary key". inoltre non è possibile convertire un campo numerico già creato in auto_increment .giusto?

alx_81 Profilo | Guru

>salve a tutti,
Ciao! Benvenuto su DotNetHell!

>1) c'è un modo per rinominare il database (tipo: alter database <nomedb> rename <novomomedb>)?
RENAME DATABASE (obsoleto)
http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

Il link ti spiega anche come usare ALTER DATABASE per risolvere il problema.

Leggi anche questo post
http://www.delphifaq.com/faq/databases/mysql/f574.shtml


>2) alter table miatb drop (colonna1,colonna2); oppure :alter table miatb drop colonna1,colonna2; non funziona.
>come faccioa a cancellare + campi in una volta sola visto che alter table miatb add (colonna1,colonna2); funziona per aggiungere
>+ campi in una sola volta?
Ad esempio:

ALTER TABLE t DROP COLUMN c, DROP COLUMN d;

da http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

>3) per rinominare una colonna utilizzando alter table miatb change campo1 nuovonomecampo1 varchar(10) devo per forza ridare le specifiche
>del campo?
Sì, perchè in realtà non stai rinominando una colonna, ma alterando l'impostazione del campo per intero.

>4) alter table miatb drop primary key; non funziona se il campo primary key è auto_increment, perché?
>ho dovuto cambiare il campo non con auto_increment e poi è stato
>possibile eseguire il comando. non capisco soprattutto perchè
>ho provato poi a ritrasformalo in auto_increment ma non me lo
>riconverte più.

"Attempting to "ALTER TABLE ... DROP PRIMARY KEY" on a table when an AUTO_INCREMENT column exists in the key generates an error:
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key.
To make this work without erroring, drop and re-add the new primary key in a single statement, e.g.:
ALTER TABLE mytable DROP PRIMARY KEY, ADD PRIMARY KEY(col1,col2);"

>5)ad una tabella senza primary key ho provato ad aggiungere un
>constraint unique con: alter table miatb add unique (id); comando
>eseguito ma faccio desc miatb1 e il campo id compare come primary,
>come mai? sapevo che unique e primary key erano diversi,il primo
>ammette valori nulli, o sbaglio?
corretto, unique ammette valori null, primary no.

>poi ho provato a cancellare con alter table miatb drop unique (id); il comando mi da errore.
>Grande punto interrogativo.
Drop unique non esiste. devi fare drop dell'indice DROP INDEX.

>Grazie per la pazienza .
Di nulla!


Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

outis Profilo | Newbie

Grazie tante e scusate per la poca attenzione. Leggerò meglio la guida ufficiale la prossima volta per evitare di aprire discussioni inutili.
Grazie ancora.

alx_81 Profilo | Guru

>Grazie tante e scusate per la poca attenzione. Leggerò meglio
>la guida ufficiale la prossima volta per evitare di aprire discussioni
>inutili.
Figurati , magari, se ti ha aiutato, accetta la risposta, così chiudiamo il thread.
Ciao!

Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5