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

MySQLデータベースのフィールドへの入力

    前の質問の表に基づいて、INSERTする必要があります 最初に独立テーブル(またはベーステーブル)に記録します )。これらのテーブルの一部はeventsemesterMajor_Minor 、など。外部キー制約がないため、これらは独立テーブルと呼ばれます。 定義されました。

    独立したテーブルに挿入するサンプルクエリ

    -- INSERTING records on table event
    INSERT INTO event (ID, event_description, event_datetime) VALUES
      (1, 'hello', NOW()),
      (2, 'world', NOW()),
      (3, 'stack', NOW()),
      (4, 'overflow', NOW());
    
    -- INSERTING records on table semester
    INSERT INTO semester (ID, SEMESTER_NAme) VALUES
      (1, 'First Semester'), 
      (2, 'Second Semester'), 
      (3, 'Summer'); 
    
    -- INSERTING records on table Major_Minor
    INSERT INTO Major_Minor (ID, Major_Minor_Name) VALUES
      (1, 'Math'),
      (2, 'Science'),
      (3, 'English');
    
    -- INSERTING records on table class
    INSERT INTO class (ID, class_name) VALUES
      (1, 'Alpha'),
      (2, 'Beta'),
      (3, 'Gamma'),
      (4, 'Omega');
    

    レコードが挿入された後、INSERTできるようになりました 依存テーブルに依存します。これらは依存と呼ばれます 外部キー制約がテーブルに定義されているためです。他のテーブルには存在しない特定のフィールドに値を追加することはできません。従属テーブルの例はMajor_Class_brです。 テーブル、

    -- INSERTING records on table Major_Class_br
    INSERT INTO Major_Class_br (ID, Class_ID, Major_Minor_ID) VALUES
        (1,1,1),
        (2,1,2),
        (3,1,3),
        (4,2,1),
        (5,2,1),
        (6,4,2);
    

    ご覧のとおり、Class_IDの値 、およびMajor_Minor_ID テーブルにすでに存在している:class およびMajor_Minor テーブルMajor_Class_br それらに依存しています。詳細については、以下のクエリを実行してみてください。ここで、Class_IDの値は次のとおりです。 Classにはまだ存在していません テーブル、

    INSERT INTO Major_Class_br (ID, Class_ID, Major_Minor_ID) VALUES (7,5,2);
    

    このエラーが表示されます




    1. OracleRACネットワークおよびIP情報の確認

    2. OracleのUPPER()関数

    3. MySQLエンコーディングの問題-WindowsとLinuxで異なる結果

    4. 存在する場合はUPDATE、それ以外の場合はSQLServer2008でINSERT