Откат данных в базе данных с использованием собственного интерфейса PostgreSQL

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

См. также

| | | |

Похожие темы