MySQL DB重复唯一键

时间:2014-01-03 03:58:34

标签: mysql database

我想知道是否可以使用他们的ID和游戏ID来创建一个包含用户登录信息的表,该ID只能每天显示一次。

所以我需要的是基本上每次用户登录时都会记录他们的id,game-id和他们的日志,我希望他们的id和game-id在一天中对于该日志是唯一的,所以db只会在1-1-14上记录一次用户123游戏A,如果用户在同一天再次登录,则不会再次记录。但是会在2-1-14再次登录,但如果是用户1234游戏B,可以在1-1-14再次登录用户

如果不是很好的解释或标题= P

,请提前抱歉
TABLE A
USERID GAMEID TIME
123     A     1-1-14
123     B     1-1-14
123     A     2-1-14

3 个答案:

答案 0 :(得分:1)

如果您将主键全部设为三个字段(userid,gameid,time),那么它将不允许您插入所谓的重复字段。如果不能选择主键,那么只需使用unique。

CREATE TABLE A (
    userid ...,
    gameid ...,
    time ...,
    UNIQUE (userid, gameid, time)
);

这使得userid,gameid和time的组合是唯一的,或者不允许重复。如果创建新表不是允许的选项,那么您还可以使用以下内容:

ALTER TABLE A ADD UNIQUE (userid, gameid, time)

...但你需要确保在运行之前没有任何重复项。

请注意,根据您用于发送SQL请求的任何技术,您可能必须处理由于存在重复项而导致插入失败的错误。

答案 1 :(得分:0)

CREATE table tbl (
USERID int,
GAMEID int,
primary key(USERID , GAMEID );

我认为你想做复合键..可以使用这段代码

答案 2 :(得分:0)

SQL UNIQUE约束

  1. UNIQUE约束唯一标识数据库中的每条记录 表
  2. UNIQUE和PRIMARY KEY约束都提供了保证 列或列集的唯一性。
  3. PRIMARY KEY约束自动具有UNIQUE约束 在它上面定义。
  4. 请注意,每个表可以有多个UNIQUE约束,但每个表只有一个PRIMARY KEY约束