Mysql
 sql >> Database >  >> RDS >> Mysql

come aggiungere una nuova colonna ogni volta che eseguo un programma Python

Non modificare il design del tuo DB in fase di esecuzione, ma progettalo in modo da modificare i dati e non la struttura.

Potresti avere due tavoli. Uno chiamato Student con colonne rollno e name , forse PK su rollno se è unico.

Quindi avere un'altra tabella chiamata Thing (qualsiasi nome adatto, ma non so di cosa trattano i tuoi dati) con tre colonne when (data/ora), value (qualsiasi nome adatto) (CHAR(1)) e student (stesso tipo di rollno ).

Definisci PK su entrambi when e value per garantire che ogni studente abbia un solo valore per data. Definisci un FK da Thing.student a Student.rollno . Ora il tuo DB si occupa di mantenere i tuoi dati (per lo più) coerenti.

Definisci indici in base alle tue esigenze di selezioni, inserimenti e aggiornamenti sulle diverse colonne.

Quindi, per eseguire query, unisci entrambe le tabelle per ottenere il risultato desiderato, ad es.

select s.name, t.value
from Student s
left join Thing t on t.student = s.rollno
where t.when == 'whenever'

(Non sono sicuro del dialetto mysql, quindi forse sono necessarie altre virgolette. Non esitare a modificare.)