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

mysql 一次更新多個表

黃文隆2年前15瀏覽0評論

MySQL是一款廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它支持一次更新多個表。下面我們來看一下如何在MySQL中一次更新多個表。

假設(shè)我們有兩個表,分別是學(xué)生表(students)和成績表(scores),它們的結(jié)構(gòu)如下:

CREATE TABLE students (
id INT(10) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(3) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE scores (
id INT(10) NOT NULL AUTO_INCREMENT,
student_id INT(10) NOT NULL,
subject VARCHAR(20) NOT NULL,
score INT(3) NOT NULL,
PRIMARY KEY (id),
INDEX (student_id),
FOREIGN KEY (student_id) REFERENCES students(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我們可以使用以下語法一次性更新多個表:

UPDATE table1, table2
SET table1.column1 = value1, table2.column2 = value2
WHERE table1.column3 = table2.column4 AND table1.id = 1;

其中,table1table2是要更新的表,可以是多個表,column1column2是要更新的列名,value1value2是要更新的值,column3column4是兩個表關(guān)聯(lián)的列名,id是要更新的行的條件。

例如,我們可以使用以下語句將學(xué)生“張三”的年齡更新為20歲,并將他的數(shù)學(xué)成績更新為90分:

UPDATE students, scores
SET students.age = 20, scores.score = 90
WHERE students.id = scores.student_id AND students.name = '張三';

這樣,我們就可以一次性更新多個表了。