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

MySQLレコードを1対多の関連テーブルに1回のアクションで入力します

    2つのINSERTコマンドを使用する必要があります。または、INSERTトリガーを使用してみてください。

    編集:

    -トリガーの例:

    CREATE TABLE dept(
      id INT(11) NOT NULL AUTO_INCREMENT,
      dept_name VARCHAR(255) DEFAULT NULL,
      PRIMARY KEY (id)
    )
    ENGINE = INNODB;
    
    CREATE TABLE emp(
      id INT(11) NOT NULL AUTO_INCREMENT,
      emp_name VARCHAR(255) DEFAULT NULL,
      dept_id INT(11) DEFAULT NULL,
      PRIMARY KEY (id),
      CONSTRAINT FK_emp_dept_id FOREIGN KEY (dept_id)
      REFERENCES dept (id) ON DELETE RESTRICT ON UPDATE RESTRICT
    )
    ENGINE = INNODB;
    
    DELIMITER $$
    
    CREATE TRIGGER trigger1
    AFTER INSERT
    ON dept
    FOR EACH ROW
    BEGIN
      INSERT INTO emp VALUES (NULL, 'Someone', NEW.id);
    END
    $$
    
    DELIMITER ;
    
    
    -- Try to add new department.
    INSERT INTO dept VALUES(NULL, 'Sales');
    
    -- Is there new default employee?
    SELECT * FROM emp;
    +----+----------+---------+
    | id | emp_name | dept_id |
    +----+----------+---------+
    |  1 | Someone  |       1 |
    +----+----------+---------+
    



    1. MySQL SSLリモート接続エラー:秘密鍵を取得できません

    2. SQL ServerのCHARINDEX()とPATINDEX()–違いは何ですか?

    3. IF EXISTS UPDATEELSEINSERTの構文エラー

    4. mysql_close():5は、4行目のC:\ wamp \ www \ Includes\footer.phpにある有効なMySQL-Linkリソースではありません