Ich versuche, Daten aus einem MS Excel 2007-Blatt mit der Importfunktion in meine Datenbanktabelle einzufügen. Die Herausforderung besteht darin, dass der Primärschlüssel meiner Datenbanktabelle automatisch inkrementiert wird. Das bedeutet im Grunde genommen, dass in der Excel-Tabelle aus praktischen Gründen keine Spalte vorhanden sein kann, die als Primärschlüssel fungiert, da dies es für die Editoren mühsam machen würde, Daten manuell einzugeben [die Excel-Tabelle für die Tabelle kann mehrmals hinzugefügt werden, daher ist es nicht wirklich eine gute Idee, den letzten Wert in der Primärschlüsselspalte im Auge zu behalten].
Hier liegt die Herausforderung. Die Importfunktion weigert sich, die Informationen in die spezifische Tabelle einzufügen, sondern erstellt stattdessen eine neue Tabelle in der Datenbank und fügt die Informationen dort ein. Um dem entgegenzuwirken, wäre eine zweite Strategie, einen Trigger oder gespeicherte Prozedur einzurichten, die periodisch durchführt [ich mache mir keine Gedanken über die Semantik, wann/wie dies ausgeführt wird]: INSERT INTO requiredDbColumn SELECT *
FROM excelSheetTable
Dies wird jedoch nicht wirklich funktionieren, da excelSheetTable und requiredDbColumn eine Werte- / Spaltenungleichheit aufweisen, da excelSheetTable nur die (n-1) Anzahl von Spalten hat, die aus der hochgeladenen Excel-Tabelle erstellt wurden, im Vergleich zu requiredDbColumn, die n Spalten hat, wobei die zusätzliche Spalte die Primärschlüsselspalte ist.
Ich habe den Primärschlüssel als automatische Inkrementierung festgelegt, daher bin ich mir nicht sicher, warum INSERT INTO, SELECT eine Spaltenanzahl-Wertanzahl-Unstimmigkeit angibt.
Das ist die allgemeine Herausforderung, hat jemand eine Lösung dafür?
Danke!