dbWriteTable函数返回TRUE状态,即使它无法插入记录,因为它违反了模式约束

时间:2017-11-09 12:49:48

标签: r shiny unique-constraint rmysql r-dbi

我正在使用DBIRMySql个包与MySql数据库进行交互。

以下是有关配置的更多详细信息:

  • R版本:3.3.2
  • DBI版本:0.7
  • RMySql版本:0.10.13

以下是表格网站

的架构
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| short_name | varchar(10) | NO   | UNI | NULL    |                |
| full_name  | varchar(50) | NO   | UNI | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

正如您可以看到字段short_name& full_name正在UNIQUE& NOT NULL约束。

在尝试插入表格中已存在的重复short_namefull_name的行时,dbWriteTable不会发生此类行插入,但会返回{{1} }状态,即使它违反了TRUE约束。 UNIQUE约束也会发生同样的事情。

这是NOT NULL&的预期行为吗? DBI?为什么它没有返回dbWriteTable状态?

编辑:我还观察到,即使FALSEdbSendStatement()在违反约束的情况下也不会出现任何错误。有什么方法可以了解这个吗?

0 个答案:

没有答案