创建一个表,有一个字段为用户(用来记录当前用户的用户名)
可不可以在这个表中插入一条数据时,这个字段自动取当前用户的用户名,有没这个字段类型?

解决方案 »

  1.   

    没有这种字段类型。也无法用USER()来设计字符的默认值 。 
    使用1# mr_mablevi的方法吧。 触发器。
      

  2.   

    mysql> create table ttr (id int,num int,name varchar(100));
    Query OK, 0 rows affected (0.09 sec)mysql> create trigger insert_user before insert on ttr
        -> for each row
        -> set new.name = current_user();
    Query OK, 0 rows affected (0.23 sec)mysql> select * from ttr;
    Empty set (0.02 sec)mysql> insert into ttr(id,num)
        -> values(1,11);
    Query OK, 1 row affected, 1 warning (0.25 sec)mysql> select * from ttr;
    +------+------+----------------+
    | id   | num  | name           |
    +------+------+----------------+
    |    1 |   11 | root@localhost |
    +------+------+----------------+
    1 row in set (0.00 sec)
      

  3.   

    我的字段已经建立了,都是用的中文,就是在  user  这个字段下自动生成,这个怎么写,我按照楼上的写的,提示错误,我的表是    问题     怎么写呀?
    create trigger insert_user before insert on 问题
       for each row
        set new.user = current_user();
      

  4.   

    you have an error in you sql syntax;check the manual that corresponds to your mysql server version for the right syntax to user near '问题' for each row set new.user = current_user()' at line 1   
    你有一个在你的SQL语法错误,检查手册对应到你的MySQL服务器版本的权利语法用户近'问题'的每一行设置new.user = current_user()在第1行'
      

  5.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  6.   

    mysql> desc 问题;
    +----------+--------------------------------------------------------------------
    ------------------+------+-----+---------+----------------+
    | Field    | Type
                      | Null | Key | Default | Extra          |
    +----------+--------------------------------------------------------------------
    ------------------+------+-----+---------+----------------+
    | 序号     | int(11)
                      | NO   | PRI | NULL    | auto_increment |
    | 问题类型 | enum('XXX','XXX') | NO   |     |         |                |
    | 提出人   | varchar(15)
                      | YES  |     | NULL    |                |
    | 问题描述 | varchar(100)
                      | NO   |     |         |                |
    | 回复     | varchar(500)
                      | YES  |     | NULL    |                |
    | 记录人   | enum('XXX','XXX')
    ')                | NO   |     |         |                |
    | 登记时间 | datetime
                      | NO   |     |         |                |
    | 图片     | blob
                      | YES  |     | NULL    |                |
    | 附件名称 | varchar(20)
                      | YES  |     | NULL    |                |
    | 附件     | blob
                      | YES  |     | NULL    |                |
    | user     | varchar(100)
                      | YES  |     | NULL    |                |
    +----------+--------------------------------------------------------------------
    ------------------+------+-----+---------+----------------+
    11 rows in set (0.00 sec)
      

  7.   

    我GOOGLE翻译时候直接复制过来的,汗
      

  8.   


    mysql> desc 问题;
    +-----------+---------------------+------+-----+---------+-------+
    | Field | Type                    | Null | Key | Default | Extra |
    +-----------+---------------------+------+-----+---------+-------+
    |     序号   | int(11)             | NO   | PRI | NULL | auto_increment |
    |   问题类型  | enum('XXX','XXX')  | NO   |     |      |             |
    |   提出人    | varchar(15)        | YES |      | NULL |             |
    |   问题描述  | varchar(100)        | NO |      |      |             |         
    |   回复       |  varchar(500)      | YES |      | NULL |            |
    |  记录人     | enum('XXX','XXX')   | NO |       |      |            |
    |   登记时间  | datetime            | NO |       |      |            |
    | 图片         | blob               | YES |       | NULL|             |
    | 附件名称     | varchar(20)        | YES |      | NULL |             |
    | 附件         | blob                | YES |       | NULL |            |
    | user        | varchar(100)        | YES |        | NULL |           |
    +----------+--------------------------------------------------------------------
    11 rows in set (0.00 sec)sorry
      

  9.   

    楼主看来根本没看回复啊。
      1. 你的 create table xxx .. 语句你贴在哪儿了?
      

  10.   

    create trigger insert_user before insert on `问题`
    for each row
    set new.user = current_user();