我的表如下内容:
create table user
(
  id           int(10) unsigned primary key auto_increment,
 userId varchar(10)  unique,
....
);
比较笨的方法是先插入数据然后再更改userId
想问一下有没有只用插入数据的语句就能让userId值也同样是唯一值的办法?

解决方案 »

  1.   

    ALTER TABLE user ADD UNIQUE (userId) 
      

  2.   

    你好,我是想插入这个字段的值,不是想加一个新字段。
    这个不是插入新字段 而是增加新的索引 唯一性的索引
    你好,我是想问一下值如何插进来,唯一性的索引在建字段的时候已经加了unique了。但是这个字段的值我应该怎么确定,例如上面本身可能有10000条记录,每个记录都有一个不同的userId,我想插入一个新的userId,这个userId的值如何确定?我想到的办法是通过insert后update一次,但是效率太低了,想问一下有没有办法直接在插入的时候确定userId的值。
      

  3.   

    你好,我是想插入这个字段的值,不是想加一个新字段。
    这个不是插入新字段 而是增加新的索引 唯一性的索引
    你好,我是想问一下值如何插进来,唯一性的索引在建字段的时候已经加了unique了。但是这个字段的值我应该怎么确定,例如上面本身可能有10000条记录,每个记录都有一个不同的userId,我想插入一个新的userId,这个userId的值如何确定?我想到的办法是通过insert后update一次,但是效率太低了,想问一下有没有办法直接在插入的时候确定userId的值。这个userId不是跟用户相关的吗?可以通过后台处理啊取消相关性的userId 按常理说这个值是可以后台确认的啊 并且建了唯一性重新的插入会失败的
      

  4.   

    这个userId有什么命名规则吗?之前的10000条记录的命名有什么规律没?
      

  5.   

    userId是纯数字类型的,可以用id的值赋值给userId(插入的时候id的值还不知道,所以只能用insert+update)。to microlab2009:
    后台处理也需要在insert into之前确定一个新的userId和已有数据表里面的记录不重复才行啊,否则就会出错了。
      

  6.   

    那如果这个userid是通过数据库返回的话 那也只能这样做了 我是想不出什么好方法了