Morgen zusammen :)
Ich habs gerade mal ausprobiert, bekomme nun aber beim alter table statement nen fehler raus:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
mysql> create database teammeeting;
Query OK, 1 row affected (0.00 sec)
mysql> use teammeeting;
Database changed
mysql> create table meetings
-> (
-> ID INT AUTO_INCREMENT PRIMARY KEY,
-> `author` VARCHAR(64),
-> `startzeit` VARCHAR(64),
-> `endzeit` VARCHAR(64),
-> `thema` TEXT,
-> `aktion` VARCHAR(1),
-> `bearbeitung` VARCHAR(64),
-> `termin` VARCHAR(64),
-> `erstellung` VARCHAR(10)
-> )
-> TYPE=INNODB
-> ;
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql> CREATE TABLE `teilnehmer`
-> (
-> `id` int(11) AUTO_INCREMENT NOT NULL,
-> `vorname` varchar(50) NULL,
-> `nachname` varchar(50) NULL,
-> PRIMARY KEY(`id`)
-> )
-> TYPE=INNODB
-> ;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> CREATE TABLE `meeting_teilnehmer`
-> (
-> `meeting_id` int(11) NOT NULL,
-> `teilnehmer_id` int(11) NOT NULL
-> )
-> TYPE=INNODB
-> ;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> ALTER TABLE `meeting_teilnehmer`
-> ADD CONSTRAINT `recipient_id`
-> FOREIGN KEY(`meeting_id`, `teilnehmer_id`)
-> REFERENCES `teilnehmer`(`id`, `id`);
ERROR 1005: Can't create table './teammeeting/#sql-a507e_2e.frm' (errno: 150)
mysql>
mysql> ALTER TABLE `meeting_teilnehmer`
-> ADD CONSTRAINT `meeting_id`
-> FOREIGN KEY(`meeting_id`, `teilnehmer_id`)
-> REFERENCES `meetings`(`id`, `id`);
ERROR 1005: Can't create table './teammeeting/#sql-a507e_2e.frm' (errno: 150)
mysql>
Ok, im Manual nach 1005 gesucht, ergibt:
If MySQL reports an error number 1005 from a CREATE TABLE statement, and the error message string refers to errno 150, this means that the table creation failed because a foreign key constraint was not correctly formed.
Also ist mein Foreign Key schlecht geformt. Aha.
Weiter sagt das Manual:
The syntax of a foreign key constraint definition in InnoDB looks like this:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
Ich bin gerad noch zu matschig im kopf, wenn ich das mal richtig ans laufen bekommen hab meld ich mich nochma ^^