sql >> データベース >  >> Database Tools >> phpMyAdmin

MySQLの自己参照テーブルフィールド

    1つのオプションは、フィールドをNULLにすることです。 -可能で、ルートレコードの親キーをNULLに設定します :

    CREATE TABLE tb_1 (
       id       int   NOT NULL  PRIMARY KEY,
       value    int   NOT NULL,
       parent   int   NULL,
       FOREIGN KEY (parent) REFERENCES tb_1(id)
    ) ENGINE=INNODB;
    Query OK, 0 rows affected (0.43 sec)
    
    -- This fails:
    INSERT INTO tb_1 VALUES (1, 1, 0);
    ERROR 1452 (23000): A foreign key constraint fails.
    
    -- This succeeds:
    INSERT INTO tb_1 VALUES (1, 1, NULL);
    Query OK, 1 row affected (0.08 sec)
    

    それ以外の場合でも、NOT NULLを使用できます 親キーとそれをルートレコード自体にポイントします:

    CREATE TABLE tb_2 (
       id       int   NOT NULL  PRIMARY KEY,
       value    int   NOT NULL,
       parent   int   NOT NULL,
       FOREIGN KEY (parent) REFERENCES tb_2(id)
    ) ENGINE=INNODB;
    Query OK, 0 rows affected (0.43 sec)
    
    -- This fails:
    INSERT INTO tb_2 VALUES (1, 1, 0);
    ERROR 1452 (23000): A foreign key constraint fails.
    
    -- This succeeds:
    INSERT INTO tb_2 VALUES (1, 1, 1);
    Query OK, 1 row affected (0.08 sec)
    


    1. データの解析中にエラーが発生しましたorg.json.JSONException:値<!DOCTYPE型のjava.lang.StringはJSONObjectに変換できません

    2. PhpMyAdmin |致命的なエラー:行0の不明で許可されたメモリサイズ134217728バイトが使い果たされました(xxxxxxバイトを割り当てようとしました)

    3. 最初の0が消えますか?

    4. データフォルダのバックアップからmysqlデータベースを回復する