色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql主表從表同時插入數據

榮姿康2年前9瀏覽0評論

MySQL主表從表同時插入數據,是在MySQL數據庫中操作時經常使用的一種方式,可以方便快捷地更新數據。下面來介紹一下具體操作。

首先,在MySQL中創建兩個表,一個主表和一個從表。主表和從表之間需要建立外鍵約束。比如這里的主表是User,從表是Order,它們的結構如下:

CREATE TABLE `User` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `Order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`product` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_order_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

接下來,我們可以使用MySQL的INSERT語句同時插入主表和從表的數據。例如,插入一個User和其對應的Order:

INSERT INTO `User` (`name`, `email`) VALUES ('Tom', 'tom@example.com');
SET @user_id = LAST_INSERT_ID();
INSERT INTO `Order` (`user_id`, `product`) VALUES (@user_id, 'Apple Watch');

上述SQL語句先插入User表的數據,然后獲取其自增主鍵id,保存到用戶變量中。然后通過該變量,在Order表中插入對應的數據。

另外,如果需要批量插入數據,也可以使用INSERT INTO ... VALUES語法,多個值之間用逗號隔開即可,例如:

INSERT INTO `User` (`name`, `email`) VALUES ('Jack', 'jack@example.com'), ('Lucy', 'lucy@example.com');
SET @user_id1 = LAST_INSERT_ID();
INSERT INTO `Order` (`user_id`, `product`) VALUES (@user_id1, 'iPhone'), (@user_id1, 'MacBook');
SET @user_id2 = LAST_INSERT_ID();
INSERT INTO `Order` (`user_id`, `product`) VALUES (@user_id2, 'iPad');

上述SQL語句中,先插入兩個用戶數據,然后獲取第一個用戶的id保存到變量中,再插入其對應的兩個Order數據。之后又獲取了第二個用戶的id,插入其對應的一個Order數據。

總之,MySQL主表從表同時插入數據,可以使用INSERT INTO語句,先插入主表數據并獲取主鍵,然后使用該主鍵在從表中插入對應數據。如果需要批量插入,可以使用INSERT INTO ... VALUES語法。