• 10.07.2025, 13:01
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

iNFiNiTE

God

sql: frage bzgl autoincrement, post #7

Montag, 20. März 2006, 13:34

siehe neue frage post #7



moin,

ich bin gerade dabei ne mysql db vom typ innodb aufzusetzen (aufgrund foreign keys), und versuche gerade das sample auf mysql.org zu verstehen:

Quellcode

1
2
3
CREATE TABLE eltern(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE kind(id INT, eltern_id INT, INDEX par_ind (eltern_id),
           FOREIGN KEY (eltern_id) REFERENCES eltern(id)) TYPE=INNODB;

soweit so gut, ist ja auch alles logisch, nur was hat es mit der zeile

Quellcode

1
INDEX par_ind (eltern_id)

auf sich ? hab bis dato ein bisschen mit interbase gearbeitet und hab noch nie sowas wie nen INDEX erstellt..

messi

crushcoder

God

Re: sql: was hat es mit dem INDEX auf sich ?

Montag, 20. März 2006, 14:43

Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Y0Gi

God

Re: sql: was hat es mit dem INDEX auf sich ?

Montag, 20. März 2006, 15:44

Foreign Keys kannst du auch ohne Konvertierung setzen und in SQL entsprechend verwenden.

iNFiNiTE

God

Re: sql: was hat es mit dem INDEX auf sich ?

Montag, 20. März 2006, 16:35

@crushcoder
okay, danke das hat mir schon mal viel geholfen.. das einzige was ich jetz ned versteh ist dieses "par_ind" in dem bsp... ist das einfach nur ein name für den index zur besseren erkennung ?

@yogi
soweit man mir erzählt hat, unterstützt mysql(4.X) nur bei innodb foreign keys.


messi

Y0Gi

God

Re: sql: was hat es mit dem INDEX auf sich ?

Montag, 20. März 2006, 17:12

Foreign Keys benutzt und über Constraints bestimmte Abhängigkeiten sicherzustellen ist ein Unterschied. Kann sein, dass Constraints nur mit InnoDB funktionieren. Foreign Keys selbst sind ja zunächst nur Verknüpfungen im Modell, die man in Queries anwendet, von dessen Relationen "auf dem Papier" das DBMS aber nicht zwingend wissen muss.

crushcoder

God

Re: sql: was hat es mit dem INDEX auf sich ?

Montag, 20. März 2006, 17:27

auf die referenz bezogen:

Zitat

INDEX [index_name] [index_type] (index_col_name,...)


par_ind ist also der name des index.

darüber kann man nachher den index zb löschen oder ändern mit alter_table:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

Zitat

DROP INDEX index_name
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

iNFiNiTE

God

Re: sql: was hat es mit dem INDEX auf sich ?

Mittwoch, 22. März 2006, 16:54

so...

phpmyadmin meckert noch bei einer zeile:

und zwar hab ich im table user eine spalte ID:

Quellcode

1
userid INT UNSIGNED AUTO_INCREMENT primary key


ich will nun aus dem table game darauf verweisen:

Quellcode

1
2
3
4
[....]
userid INT UNSIGNED AUTO_INCREMENT primary key
[...]
FOREIGN KEY (userid) REFERENCES user(userid)


nun gibt mir mysql folgendes aus:

Zitat


#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key


die meldung an sich verstehe ich ja.. wenn ich in der tabelle game nun die userid wie folgt umbaue:

Quellcode

1
userid INT UNSIGNED NOT NULL


also das auto increment raushole, dann funzt es.. wird denn die spalte userid dann trotzdem brav durchnummeriert, bzw verweist dann trotzdem korrekt auf die spalte userid aus dem table user ?

hoffe meine frage is einigermassen verständlich.. ;)

messi