我正在使用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()不会给出任何错误。有什么方法可以了解这个吗?