Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक क्रिया में MySQL रिकॉर्ड एक-से-कई संबंधित तालिकाओं को भरें

आपको दो 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका संघों में शामिल होने की संख्या के आधार पर रेल ActiveRecord क्रमबद्ध करें

  2. लंबाई बदलने के साथ दशमलव मान में अनुगामी शून्य निकालें

  3. उपयोग किए गए सेलेक्ट स्टेटमेंट में कॉलम की एक अलग संख्या होती है (REDUX !!)

  4. रैंड () फ़ंक्शन द्वारा ऑर्डर mysql में निष्पादित करने में लंबा समय लगता है

  5. PHP में दो अलग-अलग डेटाबेस से कनेक्ट करें?