我正在使用DBI
,与数据库RMySql
交互的包。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_name
或full_name
表中已存在的行时,dbWriteTable
不会让这种行插入发生,但它会返回TRUE
状态,即使它违反了UNIQUE
约束。NOT NULL
约束也会发生同样的事情。
这是DBI
&的预期行为dbWriteTable
吗?为什么它不返回FALSE
状态?
编辑:我还观察到,即使在违反约束的情况下dbSendStatement()
也dbSendQuery()
不会给出任何错误。有什么方法可以了解这个吗?