本帖最后由 default7 于 2010-09-28 17:15:41 编辑

解决方案 »

  1.   

    你可以使用 insert into ... on duplicate 
    或者 insert IGNORE into ...
      

  2.   


    呃,,,, 我需要保证hourlog表中每小时的记录只有一条。
    这个语句不太清楚怎么写。另外我上面这三个表的设计应该是没有问题的吧(效率,对吗)
      

  3.   

    没有看明白你的业务逻辑.表hourlog 的hour 为什么不精确到 小时? 为什么要精确到秒?
    如果精确到小时,则后面的程序使用 insert IGNORE into就行了。如果重复则MYSQL会取消操作。
      

  4.   

     INT(10)并不是说这是个10位的数字,它仍是INT型数列,也就是4个字节。可以存放 -2147483648 到 2147483647 的整数。 (10)只是说明了一下显示格式,这个显示设置功能基本上没什么用处。所以说用一个INT做主键,本身没有什么问题。效率也没问题。
      

  5.   


    因为这个hourlog 表里面的hour字段是每个小时里面随即取样的时间。
    为了不另外加一个logtime(记录时间),所以直接将hour精确到秒了。
      

  6.   

    从时间效率上来说。宁可添加这么个LOGTIME。