免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
字段名為mysql保留字的表的插入問(wèn)題
[總結(jié)]字段名為mysql保留字的表的插入問(wèn)題
博客分類(lèi): java
MySQLSQLSQL Server嵌入式Hibernate
今天在用mysql的時(shí)候遇到一個(gè)保留字的問(wèn)題,自己總結(jié)下,呵呵。
問(wèn)題環(huán)境:
mysql  版本 5.0.41-log
eclipse 版本 3.3.0
hibernate 版本 3.0
數(shù)據(jù)庫(kù)表名user
+------+---------+------------+-------------+
| userid | username | password | ssl |
+------+---------+------------+-------------+
問(wèn)題現(xiàn)象:
執(zhí)行代碼
java 代碼
session.save(user)         //user為user數(shù)據(jù)表的映射對(duì)象
發(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
問(wèn)題原因:
通過(guò)查找相關(guān)資料,發(fā)現(xiàn)ssl為mysql的保留字,不能像普通字段那樣進(jìn)行數(shù)據(jù)庫(kù)操作。
問(wèn)題解決方法:
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表對(duì)應(yīng)的映射文件User.hbm.xml中的ssl的信息改為
xml 代碼
<property name="ssl" column="`SSL`" type="java.lang.Long" not-null="false" length="1" />
注意:ssl旁邊的不是單引號(hào)" '  "而是" `  ",鍵盤(pán)最左上角的那個(gè),呵呵!
附:mysql保留字表和相關(guān)信息(轉(zhuǎn)載)
嘗試使用一個(gè)識(shí)別符,例如使用嵌入式MySQL數(shù)據(jù)類(lèi)型或函數(shù)名作為表名或列名,例如TIMESTAMP或GROUP,會(huì)造成一個(gè)常見(jiàn)問(wèn)題。允許你這樣操作(例如,ABS可以作為一個(gè)列名)。但是,默認(rèn)情況下,在數(shù)調(diào)用中在函數(shù)名和后面的‘(’字符之間不允許有空格。該要求使函數(shù)調(diào)用與列名引用不同。
該行為的不利結(jié)果是在某些上下文中省略一個(gè)空格會(huì)使識(shí)別符解釋為函數(shù)名。例如,該語(yǔ)句合法:
mysql> CREATE TABLE abs (val INT);但省略abs后面的空格會(huì)造成語(yǔ)法錯(cuò)誤,因?yàn)槭÷院笤撜Z(yǔ)句好像要調(diào)用ABS()函數(shù):
mysql> CREATE TABLE abs(val INT);如果SQL服務(wù)器模式包括IGNORE_SPACE模式值,服務(wù)器允許函數(shù)調(diào)用時(shí)在函數(shù)名和后面的‘(’字符之間有空格。這樣使函數(shù)名被視為保留字。結(jié)果是,與函數(shù)名相同的識(shí)別符必須按照9.2節(jié),“數(shù)據(jù)庫(kù)、表、索引、列和別名”中所描述的引起來(lái)。SQL服務(wù)器模式按照5.3.2節(jié),“SQL服務(wù)器模式”中所描述的進(jìn)行控制。
限定名中句點(diǎn)后面的字必須為一個(gè)識(shí)別符,因此不需要將它引起來(lái),即使它是一個(gè)保留字。
在MySQL中,下表中的字顯式被保留。其中大多數(shù)字進(jìn)制被標(biāo)準(zhǔn)SQL用作列名和/或表名(例如,GROUP)。少數(shù)被保留了,因?yàn)镸ySQL需要它們,(目前)使用yacc解析程序。保留字被引起來(lái)后可以用作識(shí)別符
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允許部分關(guān)鍵字用做未引起來(lái)的識(shí)別符,因?yàn)樵S多人以前曾使用過(guò)它們。下面列出了一些例子:
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
mysql反引號(hào)的使用
關(guān)于mysql字段名和保留字沖突的問(wèn)題
sql隨機(jī)查詢(xún)N條數(shù)據(jù)語(yǔ)句
如何在Python中,使用Pandas庫(kù)實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)地讀寫(xiě)?
注意MySQL的保留字陷阱
解讀mysql主從配置及其原理分析(Master
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服