2016-03-26 12 views
0

PHPMyAdminでこのテーブル構造を作成する理由を理解できません。MySQL - PhpMyadmin - 複数のテーブルを作成

私はいつも、このエラーメッセージが表示されます。

1064 - あなたのSQL構文でエラーが発生しています。使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認し

ラインの近くに 'MAX)、 FOREIGN KEY(form_id)REFERENCESフォーム(同上))' 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) 
); 

答えて

3

varchar(max)は、MS SQL Serverの構文です。 MySQLには同等の機能がないため、非常に長いサイズを使用するだけです。さらに、この問題を解決すると、と同じタイプではない(1つは符号なし、もう1つはそうでない)という問題が発生するため、参照できません。要するに:

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

ありがとうございます。今働いている。 – user2232273

2

form_data 2つの問題がある:form_idの

  1. タイプは、FORMDATA VARCHAR(MAXを使用して表form
  2. のIDタイプのタイプに一致するようにINT UNSIGNEDなければなりません)、MAXを実数255に変更する必要があります。

01値に

formdata VARCHAR(MAX), 

変更MAX:

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

ありがとうございます。今働いている。 – user2232273

+0

あなたは歓迎です –

1

あなたのエラーから来ます。