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

null値を外部キーフィールドに渡す方法は?

    university_idを許可するだけです テーブルのuser NULLを許可する nullsを保存できるようにする値 。

    CREATE TABLE user
    (
       uid INT NOT NULL,
       Name VARCHAR(30) NOT NULL, 
       university_ID INT NULL,    -- <<== this will allow field to accept NULL
       CONSTRAINT user_fk FOREIGN KEY (university_ID)
           REFERENCES university(university_ID)
    )
    

    アップデート1

    コメントに基づいて、NULLを挿入する必要があります ''ではありません 。

    insert into user (name,university_id) values ('harjeet', NULL)
    

    アップデート2

    $university_id = !empty($university_id) ? "'$university_id'" : "NULL";
    insert into user (name,university_id) values ('harjeet', $university_id);
    

    補足として、クエリはSQL Injectionで脆弱です。 値( s )変数のは外部から来ました。それを防ぐ方法については、以下の記事をご覧ください。 PreparedStatementsを使用する 値を一重引用符で囲むことはできません。



    1. データセキュリティガバナンス

    2. jqueryでmysqlレコードを削除する方法

    3. 別のSQLiteOpenHelperクラスの既存のDBに新しいテーブルを作成します

    4. TSQLで分数をhh:mm形式に変換するにはどうすればよいですか?