0

我正在开发一个 servlet,它需要将一些数据插入到 db 表中,复合主键由 userid、dataid 和CURRENT_TIMESTAMP. 但是我在执行查询时收到以下错误

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry'13-7-2013-09-13 23:22:24' for key 'PRIMARY'

我认为这是由于在同一时间向同一个表多次插入行引起的,尽管 dataid 不同。这个问题有什么解决办法吗?我应该取消CURRENT_TIMESTAMP作为主键的一部分来完成这个技巧还是有其他更好的解决方法?

非常感谢并感谢您的帮助!

4

1 回答 1

0

如果是日志表,建议不要使用主键。如果您想加速此表中的某些搜索,请创建相应的索引。

如果您需要一个主键(例如,如果您打算将它与 JPA 一起使用),最好使用一个数字,例如

ID int AUTO_INCREMENT PRIMARY KEY

例如,log4j 可以使用org.apache.log4j.jdbc.JDBCAppender.

另请参阅大型日志表的 MySQL 存储引擎

于 2013-09-13T16:02:17.550 回答