用途:面向 MATLAB 关系型数据库的写入与修改操作,包括插入、更新、删除、执行 DDL/DML、调用存储过程、事务控制与预处理语句。
主要能力:sqlwrite 将 MATLAB table 批量写入数据库表(表不存在时自动创建);sqlupdate(R2023a+)按 rowfilter 更新匹配行;execute 执行任意 SQL(CREATE TABLE、DROP、ALTER、CALL);runstoredprocedure 调用带类型化输出参数的存储过程(仅 JDBC/ODBC);commit/rollback 管理事务;databasePreparedStatement 与 bindParamValues 实现参数化插入(仅 JDBC)。
使用方式:先建立并验证连接(isopen(conn)),写入用 sqlwrite(conn, "表名", data);多语句原子操作时设 conn.AutoCommit = 'off',成功 commit(conn),失败 rollback(conn) 后恢复 AutoCommit;完成后 close(conn)。凭据使用 setSecret/getSecret(R2024a+),禁止硬编码密码。
适用场景:将计算结果导出到数据库、批量插入、按条件更新行、建表后写入、多表原子写入、高频参数化插入。
限制:读取数据应使用 sqlread/fetch;ORM 写入用 ormwrite/ormupdate;MongoDB、Cassandra、Neo4j 不适用;超大数据需手动分块循环调用 sqlwrite。sqlupdate 需 R2023a+,预处理语句仅 JDBC,runstoredprocedure 仅 JDBC/ODBC。执行 DROP、TRUNCATE、DELETE 或删列的 ALTER 前必须向用户展示确切 SQL 并获得明确确认。sqlwrite 无 BatchSize 参数,多行更新需传入与数据行数匹配的 RowFilter 元胞数组。