我正在研究一个需要将一些数据插入到db表中的servlet,其中复合主键由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
作为主键的一部分来做这个技巧还是有其他一些更好的解决方法?
非常感谢,感谢任何帮助!
答案 0 :(得分:0)
如果是日志表,建议不要使用主键。如果要在此表中加速某些搜索,请创建相应的索引。
如果您需要主键(例如,如果您打算将其与JPA一起使用),最好使用一个数字,例如
ID int AUTO_INCREMENT PRIMARY KEY
例如,log4j可以使用org.apache.log4j.jdbc.JDBCAppender
将每个事件日志插入数据库。