In mehrere Tabellen in MySQL einfügen

Mehvish Ashiq 16 Februar 2024
In mehrere Tabellen in MySQL einfügen

Dieses Tutorial zeigt beispielhaft Transaktionen und gespeicherte Prozeduren zum Einfügen in mehrere Tabellen in MySQL.

In mehrere Tabellen in MySQL einfügen

Es gibt keine Möglichkeit, einen einzelnen MySQL-Befehl in mehrere Tabellen einzufügen, aber wir können MySQL-Transaktionen verwenden, um die Projektanforderungen zu erfüllen.

Lassen Sie uns zwei Tabellen namens users und user_profiles erstellen. Die Tabelle users hat drei Attribute, user_id, user_name und user_password, während die Tabelle profiles die Attribute user_id, user_bio und homepage enthält.

Sehen Sie sich die folgenden Befehle an, mit denen wir beide Tabellen erstellen.

Beispielcode:

CREATE TABLE users(
    user_id INT NOT NULL AUTO_INCREMENT,
    user_name VARCHAR(45) NOT NULL,
    user_password VARCHAR(45) NOT NULL,
    PRIMARY KEY(user_id)
);

CREATE TABLE user_profiles(
    user_id VARCHAR(45) NOT NULL,
    user_bio VARCHAR(45) NOT NULL,
    homepage VARCHAR(50) NOT NULL
);

Hier haben wir beide Tabellen erstellt. Jetzt können wir auf folgende Weise Daten gleichzeitig in beide Tabellen einfügen.

Denken Sie daran, dass der Wert von user_profiles.user_id und users.user_id derselbe ist.

Beispielcode:

BEGIN;
    INSERT INTO users (user_id,user_name, user_password)
    VALUES (2,'username2', 'userpassword2');
    SELECT @UserID := MAX(user_id) FROM users;
    INSERT INTO user_profiles (user_id, user_bio, homepage)
    VALUES(@UserID,'this is bio for username2', 'http://www.username2.com');
COMMIT;

Fügen Sie zwei Datensätze hinzu und verwenden Sie die Anweisung SELECT, um die Ergebnisse anzuzeigen.

Ausgabe (für die Tabelle users):

+---------+-----------+---------------+
| user_id | user_name | user_password |
+---------+-----------+---------------+
|       1 | username1 | userpassword1 |
|       2 | username2 | userpassword2 |
+---------+-----------+---------------+
2 rows in set (0.03 sec)

Ausgabe (für die user_profiles):

+---------+---------------------------+--------------------------+
| user_id | user_bio                  | homepage                 |
+---------+---------------------------+--------------------------+
| 1       | this is bio for username1 | http://www.username1.com |
| 2       | this is bio for username2 | http://www.username2.com |
+---------+---------------------------+--------------------------+
2 rows in set (0.00 sec)

Alternativ können wir wie folgt eine gespeicherte Prozedur erstellen, um Zeit und Aufwand zu sparen.

Beispielcode:

DELIMITER ;;

CREATE PROCEDURE InsertALL()
BEGIN
	INSERT INTO users (user_id,user_name, user_password)
    VALUES (3,'username3', 'userpassword3');
    SELECT @UserID := MAX(user_id) FROM users;
    INSERT INTO user_profiles (user_id, user_bio, homepage)
    VALUES(@UserID,'this is bio for username3', 'http://www.username3.com');
END ;;

DELIMITER ;
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Verwandter Artikel - MySQL Insert