Hallo,
kann mir jemand den Unterschied zwischen den Formaten INT und COUNTER bei SQL erklären? In meinen Unterlagen werden diese beiden Befehle häufiger durcheinandergeworfen.
Danke!
Gruß Marc
Office - Word, Excel und Co. 9.754 Themen, 41.624 Beiträge
Welches DBMS verwendest du?
Standard-SQL sind diese beiden Formate (ivh vermute, es sind Datentypen) jedenfalls nicht.
Ohne jetzt wirklich zu Wissen, ob ich mit meiner Vermutung richtig liege:
INT(eger) ist ein Ganzzahl-Datentyp - nix besonderes.
Hinter COUNTER wuerde ich einfach mal einen Ganzzahl-Datentyp vermuten, der einen automatischen Zaehler beinhaeltet -
aehnlich AUTOWERT in Access.
Aber wie gesagt - das sind nur vage Vermutungen.
Ohne zu wissen, um welches DBMS es sich handelt, wird dir hier niemand weiterhelfen koennen.
Volker "neanderix"
Hallo Neanderix,
welches DBMS ich verwende, kann ich Dir leider nicht sagen, da ich mit SQL momentan nur formell zu tun habe, d.h. ich lerne die Syntax für die Uni. Beim Anlegen von Tabellen wir dort für soche Dinge, wie z.B. Kundennummer COUNTER verwendet. Ich hingegen hätte INT benutzt. In einer anderen Tabelle, in der Kundennummer auch vorkommt, wird dagegen wieder INT statt COUNTER verwendet. Anscheinend scheint es in diesem Fall egal zu sein, was man benutzt. Ich hätte aber trotzdem gerne den genauen Unterschied gewusst.
Aber erstmal danke, für Deine Antwort.
Gruß
Marc
>welches DBMS ich verwende, kann ich Dir leider nicht sagen, da ich mit SQL momentan nur formell zu tun
habe, d.h. ich lerne die Syntax für die Uni.
Auf irgendein System muessen die sich aber beziehen, sonst macht das keinen Sinn.
Aber deine Beschreibung bestaetigt meine Vermutung, dass "INT" schlicht fuer "INTEGER" steht, das
Format bzw der Datentyp "COUNTER" einen Automatischen Zaehler einrichtet (und wenn ich mich recht entsinne, war das eine spezialitaet von Informix)
Wenn du nun eine Tabelle "Kunden" anlegst, machst du das so (ich schreib nur die Felddefinitionen auf):
KD_Nummer COUNTER
KD_Name VARCHAR2(50)
KD_Vorname VARCHAR2(50) (
In der Tabelle "Rechnungen2Kunden" sieht das dann so aus:
RE_Nummer INT
Kunden_ID INT
Bedeutung: KD_Nummer in Tabelle "Kunden" wird durch "COUNTER" automatisch hochgezaehlt - also automatisch vergeben.
in der Tabelle "Rechnungen2Kunden" jedoch sind sowohl die Rechnungsnummer als auch die Kundennummer Fremdschluessel aus den jeweiligen Tabellen.
Hier sind diese Werte also konstant! Daher also die definiton per INT.
Klaro? Wenn nicht, frag ruhig weiter.
Und nochmal der HInweis: COUNTER besitzt nicht jedes DBMS, und ist schon gar nicht Standard-SQL. Oracle zum Beispiel hat keinen COUNTER-Typ, eine automatische Numerierung muesste mann hier
selbst programmieren. ACCESS hat einen COUNTER-Typ, dort heisst er "Autowert" und ist eigentlich ein, IIRC, Long Integer.
Volker "neanderix"
Hallo Volker,
hast Dir sehr viel Mühe gegeben und mir auf jeden Fall geholfen! Jetzt habe ichs kapiert!
Wenn ich mich recht entsinne, soll das, was wir machen "ACCESStaugliches" SQL sein. Frag mich nicht wieso COUNTER und nicht AUTOWERT.
Auf jeden Fall nochmals vielen Dank.
Gruß
Marc