MySQL REPLACE та DO

Опубликовано: 13 Январь 2023
на канале: spa it
65
7

https://dev.mysql.com/doc/refman/8.0/...

REPLACE
Замінемо рядок, який можна однозначно ідентифікувати за допомогою ключа
В нашому випадку (та сама база та тіж Customers) це стовбчик Id


DROP DATABASE base2;
CREATE DATABASE base2;


USE base2;
CREATE TABLE Customers
(
Id INT PRIMARY KEY AUTO_INCREMENT,
Age INT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
Phone VARCHAR(20)
);

INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Ganna','Velickiv','0688889977');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (19,'Ury','Medvejuy','0688889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (39,'Anton','Chernov','0687889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (22,'Anna','Ignatss','0687885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (32,'Olga','Hiv','0681885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Oksana','Velickiv','0688889971');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (14,'Victor','Medvejuy','0688889982');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (33,'Inna','Chernov','0687889983');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (27,'Elen','Ignatss','0687885984');


SELECT * FROM Customers;

Дивимось на перший рядок

Замінимо перший рядок

REPLACE INTO Customers (Id, Age, FirstName, LastName, Phone)
VALUES (1, 18,'Ganna','New','0688889977');

SELECT * FROM Customers;

Повернемо старе значення

REPLACE INTO Customers (Id, Age, FirstName, LastName, Phone)
VALUES (1, 18,'Ganna','Velickiv','0688889977');


SELECT * FROM Customers;



https://dev.mysql.com/doc/refman/8.0/...

DO виконує вирази, але не повертає жодних результатів.


DO корисний насамперед із функціями, які мають побічні ефекти, наприклад RELEASE_LOCK().


Приклад: цей оператор SELECT призупиняється, але також створює набір результатів:
SELECT SLEEP(1);

+----------+
| SLEEP(5) |
+----------+
| 0 |
+----------+
1 row in set (5.02 sec)


З іншого боку, DO робить паузу, не створюючи набору результатів:
DO SLEEP(1);
Query OK, 0 rows affected (4.99 sec)


Це може бути корисним, наприклад, у збереженій функції або тригері, які забороняють оператори, що створюють набори результатів.

DO виконує лише вирази. Його не можна використовувати у всіх випадках, коли можна використовувати SELECT. Наприклад, DO id FROM t1 недійсний, оскільки він посилається на таблицю.


Смотрите видео MySQL REPLACE та DO онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь spa it 13 Январь 2023, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 65 раз и оно понравилось 7 людям.