Ho due tabelle esistenti (TabellaA e TabellaB) e ho bisogno di aggiungere una nuova colonna a TabellaA che abbia una chiave esterna a TabellaB e abbia un valore predefinito che non è nullo ... e entrambi questi vincoli devono essere nominati. Come posso fare questo?Come modificare la colonna di aggiunta della tabella con il vincolo predefinito denominato e il vincolo di chiave esterna con nome?
36
A
risposta
73
L'aggiunta di entrambi i vincoli in una dichiarazione non era facile come pensavo sarebbe e non sembravano esserci molti esempi là fuori (almeno non ero in grado di trovarla facilmente), quindi ho pensato di condividere come l'ho fatto qui e forse qualcuno può suggerire un modo migliore?
ALTER TABLE [table name] ADD
[New Column Name] [Column Type]
CONSTRAINT [constraint name] DEFAULT ([default value]) NOT NULL,
CONSTRAINT [constraint name] FOREIGN KEY ([New Column Name])
REFERENCES [Other Table] ([Foreign ID])
Esempio:
ALTER TABLE tableA ADD
myNewColumn BIGINT
CONSTRAINT myNamedConstraint_df default (1) NOT NULL,
CONSTRAINT myNamedConstraint_fk FOREIGN KEY (myNewColumn)
REFERENCES tableB (tableBPrimaryKeyID)
0
l'ho fatto in due parti, in SQL Server Management Studio.
ALTER TABLE MyTable
ADD MyId uniqueidentifier DEFAULT (NEWID())
Quindi ho modificato manualmente i GUID per quello che dovrebbero essere nella nuova colonna. Quindi ho aggiunto il vincolo di chiave esterna.
ALTER TABLE MyTable
ADD FOREIGN KEY (MyId)
REFERENCES OtherTable(Id)
Problemi correlati
- 1. Vincolo chiave esterna MySQL - Colonna intero
- 2. Come modificare il nome della chiave esterna?
- 3. Disabilita il vincolo di chiave esterna su una tabella?
- 4. MySQL: cancella una riga ignorando il vincolo di chiave esterna
- 5. vincolo di chiave esterna SailsJS
- 6. È possibile creare un vincolo predefinito denominato in un'istruzione di colonna di aggiunta in SQL Server?
- 7. Elimina chiave esterna senza conoscere il nome del vincolo?
- 8. Cosa c'è di sbagliato con il Vincolo della chiave esterna in questa tabella
- 9. Come rimuovere il vincolo di chiave esterna in sql server?
- 10. Modifica colonna, aggiungi vincolo predefinito
- 11. Alter table per fornire il vincolo di chiave esterna
- 12. Elixir Ecto: come convalidare il vincolo di chiave esterna?
- 13. Come eliminare un record con un vincolo di chiave esterna?
- 14. La stessa colonna può avere la chiave primaria e il vincolo di chiave esterna in un'altra colonna
- 15. Perché il "vincolo di chiave esterna non riesce" quando la chiave esterna esiste?
- 16. sql: è necessario modificare il vincolo sulla tabella di rinomina?
- 17. differenze tra "chiave esterna" e "chiave esterna vincolo"
- 18. Applicare un vincolo di chiave di colonne della stessa tabella
- 19. Disabilitare il vincolo di chiave esterna, non è ancora possibile troncare la tabella? (SQL Server 2005)
- 20. crea il vincolo di tabella in mysql
- 21. Laravel Eloquent troncato - Vincolo chiave esterna
- 22. SQL conflitto con il vincolo FOREIGN KEY
- 23. Fluent Nhibernate 1.0 - Specifica il nome del vincolo di chiave esterna tra classe e sottoclasse unita
- 24. NHibernate - Nome Vincolo chiave primaria?
- 25. Come aggiungere una nuova colonna con vincolo di chiave esterna in una singola istruzione in oracle
- 26. Liquibase: come impostare il vincolo di chiave esterna nel tag colonna?
- 27. come far cadere senza nome vincolo di chiave primaria
- 28. Come modificare il tipo di dati di una colonna con un valore predefinito
- 29. Aggiungi nuova colonna con vincolo di chiave esterna in un comando
- 30. errore: 1215. Impossibile aggiungere vincolo di chiave esterna (chiavi esterne)