ich habe eine Frage zu Primary-Keys.
Ich möchte z.B. folgende Tabelle aufbauen:
id | language_id | text
----+-------------+---------
1 | 1 | deutsch
1 | 2 | german
2 | 1 | englisch
2 | 2 | english
Und zwar sollen die Spalten id und language_id Primary-Keys sein. Kann ich Postgre irgendwie dazu bringen,
die IDs wie oben aufgeführt zu vergeben? Ich bekomme es nur so hin:
id | language_id | text
----+-------------+---------
1 | 1 | deutsch
2 | 2 | german
3 | 3 | englisch
4 | 4 | english
Der Primary-Key wird über die Spalten id und language_id gebildet. D.h. doch, dass die Kombination von id und language_id nicht doppelt vorkommen darf. Also sollte doch erlaubt sein:
id | language_id | text
----+-------------+---------
1 | 1 | deutsch
1 | 2 | german
Aber nicht:
id | language_id | text
----+-------------+---------
1 | 1 | deutsch
1 | 1 | german
Habe das auch mal probiert und Postgre akzeptiert das soweit.
Aha, mein Fehler
Das werde ich dann auch so machen. War nur interessenhalber, da es dann auf der Programmierseite dann auch etwas weniger Arbeit wäre.
Trotzdem danke
Du kannst Dir das auch bestimmt db-intern machen lassen, via trigger.
Ich sehe aber keinen Vorteil gegenüber einem einfachen PK aus einem serial-Feld. Ach ja, wenn Du das in der Applikation machst, würde ich mal ganz spontan sagen, Du wirst Locks brauchen.