Voglio aggiungere una nuova colonna a una tabella nel database MySQL che dovrebbe ottenere il valore di un'altra colonna nella stessa tabella. È possibile? Se così, come fai a farlo?Come si assegna una colonna predefinita in MySQL al valore di un'altra colonna?
risposta
A partire da MySQL 5.0.2 è possibile scrivere una stored procedure collegata a TRIGGER
che può esaminare la nuova colonna ogni volta che viene inserita una riga e copiare automaticamente il valore dell'altra colonna nella nuova colonna se non è stato fornito alcun valore per la nuova colonna.
creare una vista, ed è possibile selezionare la stessa colonna due volte e dargli un nome diverso, quindi l'applicazione può utilizzare la vista invece utilizzare direttamente la tabella.
A partire dal 20101212 mysql non supporta le colonne di timestamp di default 2, il che significa che non è possibile eseguire un 'creato' e 'aggiornato' sulla stessa tabella.
Se questo è quello che stavi cercando di fare, allora il trigger con il proc memorizzato è la strada da percorrere.
È possibile utilizzare i seguenti due comandi per eseguire il proprio lavoro.
Questo comando verrà utilizzato per aggiungere una nuova colonna nella tabella. Ricorda il tipo di dati da cui desideri copiare per utilizzare questi tipi di dati nella nuova colonna.
ALTER TABLE table_name ADD new_column_name VARCHAR(60);
2: questo comando per copiare i dati dal vecchio nome di colonna al nuovo nome della colonna.
UPDATE table_name SET new_column_name = old_column_name;
Poi, se si desidera eliminare colonna precedente, quindi è possibile utilizzare il comando seguente
ALTER TABLE table_name DROP COLUMN old_column_name;
Grazie per il commento. Inizialmente pensavo ai trigger, ma voglio stare lontano da loro. Dato che questo non è molto importante per i miei bisogni immediati, presumo semplicemente che non sia possibile in MySQL per impostazione predefinita. Grazie ancora! –