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;
其中,table1
和table2
是要更新的表,可以是多個表,column1
和column2
是要更新的列名,value1
和value2
是要更新的值,column3
和column4
是兩個表關(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 = '張三';
這樣,我們就可以一次性更新多個表了。