2016-03-26 9 views
0

Ich kann nicht verstehen, warum diese Abfrage nicht funktioniert, um diese Tabellenstruktur in PHPMyAdmin zu erstellen.MySQL - PhpMyadmin - Erstellen mehrerer Tabellen

Ich erhalte immer diese Fehlermeldung:

1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in der Bedienungsanleitung für die richtige Syntax zu Ihrem MySQL-Server-Version entspricht

in der Nähe verwenden 'MAX), FOREIGN KEY (form_id) LITERATUR Form (Id))' in Zeile 4

CREATE TABLE form(
    Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    Title VARCHAR(500), 
    Is_Active BIT, 
    Is_Trash BIT, 
    Date_Created DATETIME 
); 
CREATE TABLE form_data(
    Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    form_id INT, 
    formdata VARCHAR(MAX), 
    FOREIGN KEY (form_id) REFERENCES form (Id) 
); 

Antwort

3

varchar(max) ist MS SQL Server-Syntax. MySQL hat kein Äquivalent, Sie müssen also nur eine sehr große Größe verwenden. Sobald Sie dieses Problem lösen, tritt ein Problem auf, bei dem form_data.form_id nicht vom selben Typ wie form.id ist (einer ist unsigniert und der andere nicht), daher kann er nicht darauf verweisen. Kurz gesagt:

CREATE TABLE form_data(
    Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    form_id INT UNSIGNED, -- Second issue 
    formdata VARCHAR(4000), -- First issue 
    FOREIGN KEY (form_id) REFERENCES form (Id) 
); 
+1

danke. Arbeitet jetzt. – user2232273

2

Es gibt zwei Probleme in Tabelle form_data:

  1. Art von form_id, sollte es INT UNSIGNED sein Typ von Id Art der Tabelle entsprechen form
  2. Mit Formulardaten VARCHAR (MAX), sollten Sie MAX auf reale ganze Zahl, 255 für
  3. Beispiel

diesen Code Versuchen ändern:

CREATE TABLE form(
    Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    Title VARCHAR(500), 
    Is_Active BIT, 
    Is_Trash BIT, 
    Date_Created DATETIME 
); 
CREATE TABLE form_data(
    Id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    form_id INT UNSIGNED, 
    formdata VARCHAR(255), 
    FOREIGN KEY (form_id) REFERENCES form (Id) 
); 
+0

danke. Arbeitet jetzt. – user2232273

+0

Sie sind willkommen –

1

Ihr Fehler kommen aus:

formdata VARCHAR(MAX), 

ändern MAX auf einen Wert.