• 19.07.2025, 08:44
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

Bonjour, visiteur, bienvenue sur les forums Aqua Computer Forum. Si c’est votre première visite, nous vous invitons à consulter l’Aide. Elle vous expliquera le fonctionnement de cette page. Pour avoir accès à toutes les fonctionnalités, vous devez vous inscrire. Pour cela, veuillez utiliser le formulaire d’enregistrement, ou bien lisez plus d’informations sur la procédure d’enregistrement. Si vous êtes déjà enregistré, veuillez vous connecter.

iNFiNiTE

God

sql: frage bzgl autoincrement, post #7

lundi 20 mars 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:

Code source

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

Code source

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 ?

lundi 20 mars 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 ?

lundi 20 mars 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 ?

lundi 20 mars 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 ?

lundi 20 mars 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 ?

lundi 20 mars 2006, 17:27

auf die referenz bezogen:

Citation

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

Citation

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 ?

mercredi 22 mars 2006, 16:54

so...

phpmyadmin meckert noch bei einer zeile:

und zwar hab ich im table user eine spalte ID:

Code source

1
userid INT UNSIGNED AUTO_INCREMENT primary key


ich will nun aus dem table game darauf verweisen:

Code source

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


nun gibt mir mysql folgendes aus:

Citation


#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:

Code source

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