Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Điền vào các bản ghi MySQL từ một đến nhiều bảng liên quan trong một hành động

Bạn nên sử dụng hai lệnh INSERT; hoặc cố gắng sử dụng INSERT-trigger.

CHỈNH SỬA:

--Một ví dụ với trình kích hoạt:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql LEFT JOIN của ba bảng trả về nhiều Hàng

  2. Khôi phục đơn đặt hàng thương mại điện tử

  3. MySQL:Cột được tính toán

  4. Sắp xếp các kết quả để khớp với thứ tự của các giá trị trong biểu thức WHERE IN

  5. Tính thực tiễn của nhiều cơ sở dữ liệu cho mỗi khách hàng so với một cơ sở dữ liệu