Ich habe eine Oracle-DB, die keine Fremdschlüssel hat, alle Tabellenbeziehungen werden von der Software behandelt. Zum Beispiel Tabelle Customer
mit Säulen Customer.customercode
, Customer.Name
wo customercode
ist der Primärschlüssel und Tabelle Order
Order.ordercode
mit Säulen (PK), wo Order.customercode
customercode
keine Fremdschlüssel aufweisen. Bisher behandelt die Anwendung alle Transaktionen und kümmert sich um alle Tabellenbeziehungen, so dass die Daten konsistent sind. Ich muss dies in eine ordnungsgemäße relationale DB-Implementierung ändern, also muss ich Order.customercode
zu einem FK aus Tabelle Customer
ändern. Irgendeine sqlplus-Anweisung, um dies zu tun, ohne meine Daten zu verlieren?Ändern einer vorhandenen Spalte zu einem Fremdschlüssel
1
A
Antwort
2
In Oracle würde das Erstellen eines Fremdschlüssels niemals Daten verlieren, aber es wird fehlschlagen, wenn die Daten nicht der neuen Einschränkung entsprechen. Angenommen, Ihre Daten in Ordnung ist, können Sie eine alter table
Anweisung:
ALTER TABLE order
ADD CONSTRAINT order_customer_fk FOREIGN KEY (customercode)
REFERENCES customer(customercode)
Verwandte Themen
- 1. Sequelize-CLI Hinzufügen einer Spalte zu einem vorhandenen Modell
- 2. Hibernate Fremdschlüssel ändern Eltern Spalte
- 3. Mehrere Fremdschlüssel zu einer einzigen Spalte
- 4. Hinzufügen einer WHERE-Klausel zu einem Fremdschlüssel
- 5. Hinzufügen von Werten zu neu hinzugefügten Spalte einer vorhandenen Tabelle aus Spalte einer anderen vorhandenen Tabelle
- 6. Laravel 5 - Hinzufügen Spalte und Fremdschlüssel zu einer vorhandenen Tabelle mit Daten
- 7. Varchar-Spalte in Fremdschlüssel einer anderen Tabelle ändern SQL
- 8. Zuweisen von Daten in einer neuen Tabelle zu einem vorhandenen Fremdschlüssel in einer For-Schleife
- 9. Spalte zu vorhandenen Tabellen hinzufügen
- 10. JoinColumn zu einem Fremdschlüssel
- 11. Wie kann ich eine Spalte zu einer vorhandenen Tabelle hinzufügen?
- 12. Hinzufügen einer vorhandenen Lösung zu einem vorhandenen Projekt auf TFS
- 13. Fremdschlüssel zu einer Ansicht erstellen
- 14. Hinzufügen einer Spalte zu einer vorhandenen CSV-Datei mit Python
- 15. Spalte, die auf Fremdschlüssel
- 16. Wie Hinzufügen eines Primärschlüssels und Fremdschlüssel zu einer vorhandenen Tabelle in Microsoft SQL Server-Datenbank
- 17. SQL hinzufügen Fremdschlüssel zu vorhandener Spalte
- 18. Hinzufügen von Fremdschlüssel Spalte zu Postgresql Tabelle
- 19. Wie Sie mehrere Fremdschlüssel zu einer Spalte eingeben
- 20. So löschen Sie Fremdschlüssel einer bestimmten Spalte
- 21. Laravel Migration: Hinzufügen einer Spalte mit einem Standardwert einer vorhandenen Spalte
- 22. SVN - Verzeichnisstruktur in einem vorhandenen Repository ändern
- 23. Konvertieren Sie mehrere Spalten zu einer vorhandenen Spalte
- 24. Wie fügt Format zu einer vorhandenen Spalte (WebGrid.Column)
- 25. Wie Mittel zu einer vorhandenen Spalte in R hinzugefügt werden
- 26. Hinzufügen von Zeilen zu einer noch nicht vorhandenen DataFrame-Spalte
- 27. Hinzufügen einer neuen Spalte zu der vorhandenen Tabelle auf ui5
- 28. Ändern von BroadcastReceiver zu vorhandenen Benutzern
- 29. einen Verbundfremdschlüssel zu einer vorhandenen SQL-Tabelle
- 30. Mysql - Ändern einer Spalte zu AUTO_INCREMENT
, wenn alle Daten konsistent sind, dann ist es kein Problem, 'nur Tabelle hinzufügen, um ändern Einschränkung ord_cust_fk Fremdschlüssel (customercode) Referenzen Kunde (customercode);' und du bist fertig. Hoffentlich gibt es bereits einen Index für 'order.customercode', wenn es nicht an der Zeit ist, einen hinzuzufügen. –