В этом примере показано, как соединиться с базой данных, вставить строку в существующую таблицу базы данных, а затем откатить (или отменить) вставку с помощью собственного интерфейса PostgreSQL. В примере используется база данных PostgreSQL версии 9.405 и драйвер libpq версии 10.12. База данных содержит таблицу productTable
.
Создайте подключение базы данных собственного интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Установите AutoCommit
свойство connection
объект к off
. Любые обновления, вносимые после выключения этого флага, не фиксируются в базе данных автоматически.
conn.AutoCommit = "off";
Просмотр существующей таблицы базы данных productTable
перед добавлением данных импортируйте его содержимое в MATLAB ® и отобразите последние несколько строк.
tablename = "productTable";
rows = sqlread(conn,tablename);
tail(rows,3)
ans=3×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
Создайте таблицу MATLAB, которая содержит данные для одного продукта.
data = table(30,500000,1000,25,"Rubik's Cube", ... 'VariableNames',["productnumber" "stocknumber" ... "suppliernumber" "unitcost" "productdescription"]);
Добавьте данные о продукте в таблицу базы данных productTable
.
sqlwrite(conn,tablename,data)
Снова импортируйте содержимое таблицы базы данных в MATLAB и отобразите последние несколько строк. Результаты содержат новую строку для вставленного продукта.
rows = sqlread(conn,tablename); tail(rows,4)
ans=4×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
30 5e+05 1000 25 "Rubik's Cube"
Откат вставленной строки.
rollback(conn)
Снова импортируйте содержимое таблицы базы данных в MATLAB и отобразите последние несколько строк. Результаты больше не содержат вставленную строку.
rows = sqlread(conn,tablename); tail(rows,3)
ans=3×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
6 4.0088e+05 1004 8 "Sail Boat"
3 4.01e+05 1009 17 "Slinky"
10 8.8865e+05 1006 24 "Teddy Bear"
close(conn)
close
| postgresql
| rollback
| sqlread
| sqlwrite