J'ai un grand nombre de lignes que je voudrais copier, mais je dois changer un champ.
Je peux sélectionner les lignes que je souhaite copier:
select * from Table where Event_ID = "120"
Maintenant, je veux copier toutes ces lignes et créer de nouvelles lignes tout en définissant le Event_ID
sur 155
. Comment puis-je accomplir cela?
C'est une solution où vous avez de nombreux champs dans votre table et que vous ne voulez pas avoir une crampe au doigt en tapant tous les champs, tapez simplement ceux dont vous avez besoin :)
Comment copier certaines lignes dans la même table, avec certains champs ayant des valeurs différentes:
Votre code:
Code de scénario général:
Code simplifié / condensé:
Comme la création de la table temporaire utilise le
TEMPORARY
mot - clé, elle sera automatiquement supprimée à la fin de la session (comme @ ar34z suggéré).la source
TEMPORARY
mot - clé pour créer des tables temporaires. L'utilisation deCREATE TEMPORARY TABLE
supprimera automatiquement la table lorsque la session (une série de requêtes SQL) est terminée. La suppression de la table ne serait pas nécessaire et elle n'entre pas en conflit avec d'autres tables temporaires utilisant le même nom. (par exemple, lors du piratage en direct (que je ne recommanderais pas))ALTER TABLE temporary_table MODIFY <auto_inc_not_null_field> INT;
Ensuite, la mise à jour de la clé primaire sur Null n'échouerait pas.Exception: null value in column <auto_inc_not_null_field> violates not-null constraint
. J'ai essayéALTER TABLE temporary_table ALTER COLUMN <auto_inc_not_null_field> DROP NOT NULL;
Disons que votre table a deux autres colonnes: foo et bar
la source
Si vous avez beaucoup de colonnes dans votre table et que vous ne voulez pas taper chacune d'elles, vous pouvez le faire en utilisant une table temporaire, comme;
la source
Hey que diriez-vous de copier tous les champs, changez l'un d'entre eux avec la même valeur + autre chose.
??????????
la source
Tant que Event_ID est Integer, procédez comme suit:
la source