亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2712 | 回復: 0
打印 上一主題 下一主題

字段名為mysql保留字的表的插入問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-12-23 12:19 |只看該作者 |倒序瀏覽
轉載:
字段名為mysql保留字的表的插入問題
    今天在用mysql的時候遇到一個保留字的問題,自己總結下,呵呵。
問題環(huán)境:
mysql  版本 5.0.41-log
elipse 版本 3.3.0
hibernate 版本 3.0

數(shù)據(jù)庫表名user
+------+---------+------------+-------------+
| userid | username | password | ssl |
+------+---------+------------+-------------+
問題現(xiàn)象:
執(zhí)行代碼
java 代碼
session.save(user)         //user為user數(shù)據(jù)表的映射對象   
發(fā)生異常。
異常信息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ssl) values(4, '3', '3', 2)' at line 1
問題原因:
通過查找相關資料,發(fā)現(xiàn)ssl為mysql的保留字,不能像普通字段那樣進行數(shù)據(jù)庫操作。
問題解決方法:
1. 將
java 代碼
session.save(user);   
改為
  
java 代碼
session.createSQLQuery("insert  into user(userid, username, password, `ssl`) values(" + user.getUserid() +", "+ user.getUsername +", "+ user.getPassword +", " + user.getSsl() + ")");    query.executeUpdate();   

2.將user表對應的映射文件User.hbm.xml中的ssl的信息改為
      
xml 代碼
property name="ssl" column="`SSL`" type="java.lang.Long" not-null="false" length="1" />   
注意:ssl旁邊的不是單引號" '  "而是" `  ",鍵盤最左上角的那個,呵呵!
附:mysql保留字表和相關信息(轉載)
嘗試使用一個識別符,例如使用嵌入式MySQL數(shù)據(jù)類型或函數(shù)名作為表名或列名,例如TIMESTAMP或GROUP,會造成一個常見問題。允許你這樣操作(例如,ABS可以作為一個列名)。但是,默認情況下,在數(shù)調用中在函數(shù)名和后面的‘(’字符之間不允許有空格。該要求使函數(shù)調用與列名引用不同。
該行為的不利結果是在某些上下文中省略一個空格會使識別符解釋為函數(shù)名。例如,該語句合法:
mysql> CREATE TABLE abs (val INT);但省略abs后面的空格會造成語法錯誤,因為省略后該語句好像要調用ABS()函數(shù):
mysql> CREATE TABLE abs(val INT);如果SQL服務器模式包括IGNORE_SPACE模式值,服務器允許函數(shù)調用時在函數(shù)名和后面的‘(’字符之間有空格。這樣使函數(shù)名被視為保留字。結果是,與函數(shù)名相同的識別符必須按照
[color="#800080"]9.2節(jié),“數(shù)據(jù)庫、表、索引、列和別名”
中所描述的引起來。SQL服務器模式按照
[color="#0000ff"]5.3.2節(jié),“SQL服務器模式”
中所描述的進行控制。
限定名中句點后面的字必須為一個識別符,因此不需要將它引起來,即使它是一個保留字。
在MySQL中,下表中的字顯式被保留。其中大多數(shù)字進制被標準SQL用作列名和/或表名(例如,GROUP)。少數(shù)被保留了,因為MySQL需要它們,(目前)使用yacc解析程序。保留字被引起來后可以用作識別符  
ADD                     ALL                       ALTER    ANALYZE                 AND                       AS    ASC                     ASENSITIVE                BEFORE    BETWEEN                 BIGINT                    BINARY    BLOB                    BOTH                      BY    CALL                    CASCADE                   CASE    CHANGE                  CHAR                      CHARACTER    CHECK                   COLLATE                   COLUMN    CONDITION               CONNECTION                CONSTRAINT    CONTINUE                CONVERT                   CREATE    CROSS                   CURRENT_DATE              CURRENT_TIME    CURRENT_TIMESTAMP       CURRENT_USER              CURSOR    DATABASE                DATABASES                 DAY_HOUR    DAY_MICROSECOND         DAY_MINUTE                DAY_SECOND    DEC                     DECIMAL                   DECLARE    DEFAULT                 DELAYED                   DELETE    DESC                    DESCRIBE                  DETERMINISTIC    DISTINCT                DISTINCTROW               DIV    DOUBLE                  DROP                      DUAL    EACH                    ELSE                      ELSEIF    ENCLOSED                ESCAPED                   EXISTS    EXIT                    EXPLAIN                   FALSE    FETCH                   FLOAT                     FLOAT4    FLOAT8                  FOR                       FORCE    FOREIGN                 FROM                      FULLTEXT    GOTO                    GRANT                     GROUP    HAVING                  HIGH_PRIORITY             HOUR_MICROSECOND    HOUR_MINUTE             HOUR_SECOND               IF    IGNORE                  IN                        INDEX    INFILE                  INNER                     INOUT    INSENSITIVE             INSERT                    INT    INT1                    INT2                      INT3    INT4                    INT8                      INTEGER    INTERVAL                INTO                      IS    ITERATE                 JOIN                      KEY    KEYS                    KILL                      LABEL    LEADING                 LEAVE                     LEFT    LIKE                    LIMIT                     LINEAR    LINES                   LOAD                      LOCALTIME    LOCALTIMESTAMP          LOCK                      LONG    LONGBLOB                LONGTEXT                  LOOP    LOW_PRIORITY            MATCH                     MEDIUMBLOB    MEDIUMINT               MEDIUMTEXT                MIDDLEINT    MINUTE_MICROSECOND      MINUTE_SECOND             MOD    MODIFIES                NATURAL                   NOT    NO_WRITE_TO_BINLOG      NULL                      NUMERIC    ON                      OPTIMIZE                  OPTION    OPTIONALLY              OR                        ORDER    OUT                     OUTER                     OUTFILE    PRECISION               PRIMARY                   PROCEDURE    PURGE                   RAID0                     RANGE    READ                    READS                     REAL    REFERENCES              REGEXP                    RELEASE    RENAME                  REPEAT                    REPLACE    REQUIRE                 RESTRICT                  RETURN    REVOKE                  RIGHT                     RLIKE    SCHEMA                  SCHEMAS                   SECOND_MICROSECOND    SELECT                  SENSITIVE                 SEPARATOR    SET                     SHOW                      SMALLINT    SPATIAL                 SPECIFIC                  SQL    SQLEXCEPTION            SQLSTATE                  SQLWARNING    SQL_BIG_RESULT          SQL_CALC_FOUND_ROWS       SQL_SMALL_RESULT    SSL                     STARTING                  STRAIGHT_JOIN    TABLE                   TERMINATED                THEN    TINYBLOB                TINYINT                   TINYTEXT    TO                      TRAILING                  TRIGGER    TRUE                    UNDO                      UNION    UNIQUE                  UNLOCK                    UNSIGNED    UPDATE                  USAGE                     USE    USING                   UTC_DATE                  UTC_TIME    UTC_TIMESTAMP           VALUES                    VARBINARY    VARCHAR                 VARCHARACTER              VARYING    WHEN                    WHERE                     WHILE    WITH                    WRITE                     X509    XOR                     YEAR_MONTH                ZEROFILL   
MySQL允許部分關鍵字用做未引起來的識別符,因為許多人以前曾使用過它們。下面列出了一些例子:
  • ACTION
  • BIT
  • DATE
  • ENUM
  • NO
  • TEXT
  • TIME
  • TIMESTAMP

  
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/10295/showart_1736281.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP