Alle Fragen und Probleme zu den externen Schnittstellen wie ODBC, JDBC, ...
-
akretschmer
- Erfahrener Benutzer
- Beiträge: 7683
- Registriert: So 29. Okt 2006, 13:35
- Wohnort: Kaufbach, Sachsen, Germany, Germany
-
Kontaktdaten:
Beitrag
von akretschmer » Sa 27. Dez 2014, 10:43
MoonKid hat geschrieben:
Aber nochmal ne Rückfrage: Hier wurde (nach meinem Verständnis) behauptet der Datentyp "oid" sei deprecated. In der 9.4er Doku ist dazu aber nix zu lesen. Wie ist da also nun der Stand?
OID gibt es schon noch, jede Tabelle hat z.B. eine, wichtige Systemtabellen haben eine OID, z.B. pg_class. Man verwendet nur keine OID in jeder Tabelle für jeden Record.
-
MoonKid
- Neuer Benutzer
- Beiträge: 27
- Registriert: Mo 22. Dez 2014, 11:13
Beitrag
von MoonKid » Sa 27. Dez 2014, 12:46
akretschmer hat geschrieben:OID gibt es schon noch, jede Tabelle hat z.B. eine, wichtige Systemtabellen haben eine OID, z.B. pg_class. Man verwendet nur keine OID in jeder Tabelle für jeden Record.
Sorry, das ist schon wieder zu unspezifisch. Beziehst du dich auf das Konzept der internen-OIDs (WITH_OID), das Konzept der (z.B. von mir) expliziert angelegten oids (im Sinne von PrimaryKeys) oder auf den Datentyp "oid"?
-
akretschmer
- Erfahrener Benutzer
- Beiträge: 7683
- Registriert: So 29. Okt 2006, 13:35
- Wohnort: Kaufbach, Sachsen, Germany, Germany
-
Kontaktdaten:
Beitrag
von akretschmer » Sa 27. Dez 2014, 13:58
MoonKid hat geschrieben:akretschmer hat geschrieben:OID gibt es schon noch, jede Tabelle hat z.B. eine, wichtige Systemtabellen haben eine OID, z.B. pg_class. Man verwendet nur keine OID in jeder Tabelle für jeden Record.
Sorry, das ist schon wieder zu unspezifisch.
Ganz spezifisch ist das hier erklärt:
http://www.postgresql.org/docs/9.4/inte ... e-oid.html
-
MoonKid
- Neuer Benutzer
- Beiträge: 27
- Registriert: Mo 22. Dez 2014, 11:13
Beitrag
von MoonKid » Sa 27. Dez 2014, 14:20
Die Seite habe ich selbst schon verlinkt. Hier ist kein Wort von "deprecated" zu lesen.
-
akretschmer
- Erfahrener Benutzer
- Beiträge: 7683
- Registriert: So 29. Okt 2006, 13:35
- Wohnort: Kaufbach, Sachsen, Germany, Germany
-
Kontaktdaten:
Beitrag
von akretschmer » Sa 27. Dez 2014, 14:28
MoonKid hat geschrieben:Die Seite habe ich selbst schon verlinkt. Hier ist kein Wort von "deprecated" zu lesen.
Dann nehme
http://www.postgresql.org/docs/9.1/stat ... tible.html und erfreue Dich an:
"The use of OIDs in user tables is considered deprecated, so most installations should leave this variable disabled. Applications that require OIDs for a particular table should specify WITH OIDS when creating the table. This variable can be enabled for compatibility with old applications that do not follow this behavior."
-
MoonKid
- Neuer Benutzer
- Beiträge: 27
- Registriert: Mo 22. Dez 2014, 11:13
Beitrag
von MoonKid » Sa 27. Dez 2014, 18:46
akretschmer hat geschrieben:"The use of OIDs in user tables is considered deprecated, so most installations should leave this variable disabled. Applications that require OIDs for a particular table should specify WITH OIDS when creating the table. This variable can be enabled for compatibility with old applications that do not follow this behavior."
Das bezieht sich einzig und alleine auf das Konzept der internen von PostgreSQL selbst erzeugten OIDs.
Hier steht nix über den Datentyp "oid" oder selbst-erzeugte Felder im Sinne einer Identifikation bzw. PrimaryKeys.
-
akretschmer
- Erfahrener Benutzer
- Beiträge: 7683
- Registriert: So 29. Okt 2006, 13:35
- Wohnort: Kaufbach, Sachsen, Germany, Germany
-
Kontaktdaten:
Beitrag
von akretschmer » Sa 27. Dez 2014, 22:24
MoonKid hat geschrieben:akretschmer hat geschrieben:"The use of OIDs in user tables is considered deprecated, so most installations should leave this variable disabled. Applications that require OIDs for a particular table should specify WITH OIDS when creating the table. This variable can be enabled for compatibility with old applications that do not follow this behavior."
Das bezieht sich einzig und alleine auf das Konzept der internen von PostgreSQL selbst erzeugten OIDs.
Hier steht nix über den Datentyp "oid" oder selbst-erzeugte Felder im Sinne einer Identifikation bzw. PrimaryKeys.
Ja, und?
Was *genau* ist jetzt Dein Problem?
Willst Dich jetzt weiter zum Mops machen? Das *Konzept*, OID's zu verwenden, ist schlicht und einfach deprecated. Alternativen wurden Dir genannt.
-
Gisman
- Erfahrener Benutzer
- Beiträge: 1140
- Registriert: Fr 20. Jan 2006, 15:30
- Wohnort: Pfalz
-
Kontaktdaten:
Beitrag
von Gisman » So 28. Dez 2014, 05:52
Sein Problem ist, das er etwas 'OID' nennt was im Sinne von pg kein 'OID' ist sondern ein banaler Primary Key. Wie ich in meinem ersten Post schon erwähnte, ist die Namenswahl verwirrend. qed.
Gruß Uwe
-
castorp
- Erfahrener Benutzer
- Beiträge: 1177
- Registriert: Sa 27. Jun 2009, 22:24
- Wohnort: Bayern
Beitrag
von castorp » Mo 20. Aug 2018, 11:30
MoonKid hat geschrieben: ↑Fr 26. Dez 2014, 22:55
Dickes Danke! "serial" lösst das Problem und auch LO kapiert es dann.
Aber nochmal ne Rückfrage: Hier wurde (nach meinem Verständnis) behauptet der Datentyp "oid" sei deprecated. In der 9.4er Doku ist dazu aber nix zu lesen. Wie ist da also nun der Stand?
OIDs als Ersatz für einen Primary Key sind deprecated ("WITH OIDS" im CREATE TABLE). Siehe hier:
https://www.postgresql.org/docs/current ... -WITH-OIDS
oid als
Datentyp ist
nicht deprecated.
Meiner Meinung nach ist aber eine Spalte vom Typ "oid" fast immer die falsche Wahl. Wenn man Binärdaten in der DB speichern will ist bytea die bessere Wahl (das entspricht weitgehend den BLOBs von anderen DBMS Systemen).
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'