В этом примере показано, как соединиться с базой данных, вставьте строку в существующую таблицу базы данных, и затем откатывайте (или реверс) вставку с помощью собственного интерфейса PostgreSQL. Пример использует базу данных версии 9.405 базы данных PostgreSQL и 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