Hey Leute, Ich such jetz schon ne ganze weile, aber komm ihrgendwie nich so richtig drauf... wie kann ich herausfinden, welche spalte in einer tabelle ein prmärschlüssel und/oder autowert ist...?
ich hab "SELECT @@IDENTITY" gefunden, blick aber nich so richtig, was es macht... ich bekomm da immer ne "0" zurück egal was ich mache... -.-
hab "exec sp_pkeys" grad ausprobiert und muss sagen, das is genau die lösung die ich für mssql gebraucht hab, danke... haste da vlt für Oracle auch ne lösung? da läuft das ganze ja über trigger...
Der Oracle Trigger holt sich den Wert wohl aus einer Sequence. Und den Wert der Sequence kannst abfragen. Beispiel: Deine Sequence heisst "blabla": blabla.currval. das geht auch in sql statements ausserhalb des triggers.
ob und wenn ja welche Spalte in einer Tabelle einen Primärschlüssel, etc... darstellt, ist sogenannte Metainformation. Dafür existiert z.B. beim MSSQL Server das INFORMATION_SCHEMA (ich glaub bei MySql heißt das genauso, mag sein, dass sich Tabellen-Schemata unterschieden). Schaus Dir einfach an, ist halb so wild.
bei mssql, mysql und oracl sollte sich das als nicht so schwierig erweisen diese auszulesen, aber access verhindert externen zugriff auf seine systemtabellen...
Oracle-Defaultwert für eine Spalte: SELECT data_default FROM user_tab_columns WHERE table_name = 'QWERTZ' AND column_name = 'ASDFG';
Wenns statt dm Defaultwert eine Sequence ist (wie bei PK-Spalten oft), dann kann die durch einen Trigger (Eventgesteuertes PL/SQL-Programm) gefüllt werden. Um sich den anzusehen, empfehle ich den kostenlosen SQL-Developer von Oracle.
Oracle-Indexspalten: SELECT * FROM user_ind_columns WHERE table_name = 'QWERTZUIOP';
Oracle-Primary Keys: SELECT constraint_name, index_name FROM user_constraints WHERE table_name = 'QWERTZUIOP' AND constraint_type = 'P';
Mit dem so gelieferten Indexnamen kann man dann wieder in user_ind_columns nachsehen, welche Spalten dazugehören.
haste da vlt für Oracle auch ne lösung? da läuft das ganze ja über trigger...