Je dois convertir une table db existante en une nouvelle table db qui ajoute une nouvelle colonne. J'ai le code SQL suivant qui définit la valeur par défaut de cette colonne à -1. Mais comment puis-je définir la valeur par défaut de la colonne à incrémenter un par un pour chaque ligne?Mise à niveau d'une table de base de données pour ajouter une nouvelle colonne
0
A
Répondre
1
Cela dépend du SGBD que vous utilisez. Pour MySQL, vous pouvez utiliser:
ALTER TABLE x ADD COLUMN y INTEGER NOT NULL DEFAULT -1 AUTO_INCREMENT
Voir http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
0
sont des valeurs auto-incrémentée de nouvelles lignes après votre conversion aussi? Sinon, vous pouvez faire 3 étapes:
- altèrer la table avec la colonne NULLABLE
- UPDATE la nouvelle colonne avec tout ce que vous avez des règles
- à nouveau ALTER NOT NULL à définir.
3
Cela dépend de votre SGBD. MySQL utilise AUTO_INCREMENT
:
ALTER TABLE favorites ADD COLUMN appWidgetId INTEGER
NOT NULL DEFAULT -1 AUTO_INCREMENT
PostgreSQL utilise CREATE SEQUENCE
:
CREATE SEQUENCE favorites_seq;
ALTER TABLE favorites ADD COLUMN appWidgetId INTEGER
NOT NULL DEFAULT -1 nextval('favorites_seq')
SQL Server utilise IDENTITY
:
ALTER TABLE favorites ADD COLUMN appWidgetId INTEGER
IDENTITY(1,1) NOT NULL DEFAULT -1
Comme une note de côté, je ne sais pas pourquoi vous définissez votre d erreur par défaut -1. Pourquoi voudriez-vous faire signer vos nombres entiers s'ils seront toujours positifs? Vous devriez faire le 0 par défaut pour l'efficacité.
Questions connexes
- 1. Ajouter une nouvelle colonne dans une grande table mysql
- 2. Table de base de données ADO Colonne booléenne
- 3. Comment ajouter une colonne dans une table de base de données sqlite 2
- 4. Comment ajouter une nouvelle table répliquée à une base de données SQL Server 2005 dans une réplication de fusion?
- 5. Ajouter une nouvelle colonne dans Infragistics Wingrid
- 6. Ajouter une colonne à une table existante et les numéroter de manière unique
- 7. Alter Table Ajouter une colonne Syntaxe
- 8. Dois-je changer le niveau de compatibilité de ma base de données mise à niveau de 8 à 9?
- 9. SQL Server 2005: comment ajouter une colonne à une table au début de la table?
- 10. Mise à niveau et mise à niveau de Wix 3.0
- 11. Comment gérez-vous les mises à niveau de schéma vers une base de données de production?
- 12. Comment spécifier le niveau d'isolation de base de données à utiliser, à un niveau élevé?
- 13. SQL Server: mise à niveau des bases de données
- 14. Taille de table maximale pour une base de données MySQL
- 15. Colonne introuvable lors d'une mise à jour de base de données croisée dans mysql
- 16. Colonne de table fractionnée dans données dynamiques
- 17. Liste de contrôle pour les mises à niveau de schéma de base de données
- 18. Impossible d'insérer une nouvelle ligne dans la table de base de données postgres?
- 19. Ajout d'un datarow d'une table existante à une nouvelle table
- 20. rails mise à jour schéma de base de données
- 21. Comment utiliser C# pour ajouter une colonne pour une table de serveur sql?
- 22. Trouver une colonne spécifique dans une table inconnue dans une base de données?
- 23. données dans une table emboîtées de base de données
- 24. Mise à niveau de SQL 2000 - 2008 - Envoi de journaux
- 25. Ruby on Rails: Somme des valeurs de ligne de colonne de table à base d'autres données de la colonne
- 26. Pour définir une valeur par défaut pour une colonne dans une base de données par PostgreSQL
- 27. Commande de mise à jour de base de données
- 28. asp.net - interface web de gestion de table de base de données - ajouter, supprimer, mettre à jour
- 29. Ignorer; et ajouter à la table de données
- 30. Existe-t-il une méthode pour copier une nouvelle colonne dans une table existante et copier les informations de colonne d'une autre table dans Oracle?
Quel SQL? Oracle, MySQL, SQL Server, ...? – n8wrl