sql >> データベース >  >> RDS >> Mysql

複合主キーを外部キーとして使用する

    行:

    FOREIGN KEY (pk_studentID ) REFERENCES student(pk_studentID ),
    

    間違っている。 pk_studentIDは使用できません このように、これは親テーブルのPK制約の名前にすぎません。複合主キーを外部キーとして使用するには、同じデータ型の同じ数の列(PKを構成する)を子テーブルに追加してから、 FOREIGNKEY<でこれらの列の組み合わせを使用する必要があります。 / code> 定義:

    CREATE TABLE files
    (
      files_name varchar(50) NOT NULL, 
    
      batch_id varchar(4) NOT NULL,         --- added, these 3 should not
      dept_id varchar(6) NOT NULL,          --- necessarily be NOT NULL
      student_id varchar (25) NOT NULL,     --- 
    
      files_path varchar(50),
      files_data varchar(max),              --- varchar(max) ??   
      files_bookmarks xml,                  --- xml ??
                                            --- your question is tagged MySQL, 
                                            --- and not SQL-Server
    
      CONSTRAINT pk_filesName 
        PRIMARY KEY (files_name),
    
      CONSTRAINT fk_student_files                     --- constraint name (optional)
        FOREIGN KEY (batch_id, dept_id, student_id)  
          REFERENCES student (batch_id, dept_id, student_id)
    ) ENGINE = InnoDB ;
    



    1. oracle削除クエリに時間がかかりすぎる

    2. cxを使用してUnicodeを挿入できない-Oracle

    3. MySQLで2つのタイムスタンプの差を計算する方法

    4. テーブルは、「UPDATE」のターゲットとmysqlのデータの個別のソースの両方として2回指定されます