精华内容
下载资源
问答
  • python在MySQL表名周围插入单引号(‘)
    2021-01-19 10:12:38

    我有一个名为project1的数据库,其中包含以下表格:

    _systbl1

    _systbl2

    _systbl3

    dataset1

    dataset2

    dataset3

    每当添加一个新用户时,都需要授予MySQL用户odbc对dataset%表的SELECT权限.

    为此,我使用了一个简单的python脚本,如下所示:

    #!/usr/bin/python

    import MySQLdb

    db = MySQLdb.connect(

    host="localhost",

    user="user",

    passwd="pass",

    db="project1"

    )

    # Create Cursor Object

    cur = db.cursor()

    # get list of tables beginning with dataset

    cur.execute("SHOW TABLES FROM project1 LIKE 'dataset%';")

    # run GRANT statement for each table

    for row in cur.fetchall() :

    cur.execute("GRANT SELECT ON `project1`.`%s` TO `odbc`@`localhost`;", row)

    cur.execute("GRANT SELECT ON `project1`.`%s` TO `odbc`@`%`;", row)

    不幸的是,它给了我以下错误:

    Traceback (most recent call last):

    File "mysql_query.py", line 20, in

    cur.execute("GRANT SELECT ON `project1`.`%s` TO `odbc`@`localhost`;", row)

    File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute

    self.errorhandler(self, exc, value)

    File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler

    raise errorclass, errorvalue

    _mysql_exceptions.ProgrammingError: (1146, "Table 'project1.'dataset1'' doesn't exist")

    正如您在错误的最后一行中看到的那样,问题在于python在生成查询时在表名周围加上了单引号.

    我在这里想念什么?

    更多相关内容
  • mysql引号表名

    2021-07-16 17:01:02
    I'm doing a mysql query like:Select * from "User";and it returns: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 '...

    I'm doing a mysql query like:

    Select * from "User";

    and it returns:

    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 '"User"' at line 1

    The error has something to do with the double-quotes ", can I keep the select statement as is, and make mysql cope with the double quotes?

    解决方案

    Taken from this post:

    SET GLOBAL SQL_MODE=ANSI_QUOTES;

    Personally when I tested, I had to do it like this:

    SET SQL_MODE=ANSI_QUOTES;

    I don't think there's any other way.

    ANSI_QUOTES

    Treat “"” as an identifier quote character (like the “`” quote

    character) and not as a string quote character. You can still use “`”

    to quote identifiers with this mode enabled. With ANSI_QUOTES enabled,

    you cannot use double quotation marks to quote literal strings,

    because it is interpreted as an identifier.

    展开全文
  • 您需要对表名和数据库名使用反引号。语法如下:UPDATE`yourDatabaseName`.`yourTableName`SETyourColumnName1=yourColumnName1+1WHEREyourColumnName2=’yourValue’;为了理解上述语法,让我们创建一个表。创建表的...

    您需要对表名和数据库名使用反引号。语法如下:UPDATE `yourDatabaseName`.`yourTableName`

    SET yourColumnName1=yourColumnName1+1

    WHERE yourColumnName2=’yourValue’;

    为了理解上述语法,让我们创建一个表。创建表的查询如下:mysql> use test;

    Database changed

    mysql> create table Add1Demo

    -> (

    -> Id varchar(10),

    -> Value int

    -> );

    使用insert命令在表中插入一些记录。查询如下:mysql> insert into Add1Demo values('1',780);

    mysql> insert into Add1Demo values('2',1001);

    mysql> insert into Add1Demo values('3',1654);

    mysql> insert into Add1Demo values('4',3999);

    mysql> insert into Add1Demo values('5',5999);

    mysql> insert into Add1Demo values('6',799);

    mysql> insert into Add1Demo values('8',899);

    使用select语句显示表中的所有记录。查询如下:mysql> select *from Add1Demo;

    以下是输出:+------+-------+

    | Id   | Value |

    +------+-------+

    | 1    |   780 |

    | 2    |  1001 |

    | 3    |  1654 |

    | 4    |  3999 |

    | 5    |  5999 |

    | 6    |   799 |

    | 8    |   899 |

    +------+-------+

    7 rows in set (0.00 sec)

    这是在数据库名称和表名称周围使用反引号的查询。不要对数据库和表名使用单引号。查询如下,假设将1添加到当前字段。mysql> update `test`.`Add1Demo`

    -> set Value=Value+1

    -> where Id='6';

    Rows matched: 1 Changed: 1 Warnings: 0

    现在,您可以再次检查具有特定ID 6的表记录。查询如下:mysql> select *from Add1Demo where Id='6';

    以下是输出:+------+-------+

    | Id   | Value |

    +------+-------+

    | 6    |   800 |

    +------+-------+

    1 row in set (0.00 sec)

    展开全文
  • 解析: 这里user别名是关键字,我们加上``,使用 表名.字段 应该各自给他们上反引号,像图中用法一样,而不是用反引号包括整体,同时还有一点注意,表使用别名之后,使用原表名引用字段会失效。 ...

    在这里插入图片描述
    解析:

    这里user别名是关键字,我们加上``,使用 表名.字段 应该各自给他们上反引号,像图中用法一样,而不是用反引号包括整体,同时还有一点注意,表使用别名之后,使用原表名引用字段会失效。

    展开全文
  • mysql表名与列名单引号引发的问题

    千次阅读 2019-05-09 19:44:31
    mysql表名与列名单引号问题 当我建立如下表的时候报如下错: mysql> create table goods( -> goods_id mediumint(8) unsigned not null auto_increment, -> cat_id smallint(5) unsigned not null default ...
  • 原因:跟mysql的版本有关,如果表名是该版本的关键字,不加引号就会报错 解决办法:在该sql语句中给表名引号
  • 据我所知,不需要反引号,例如查询中的表名:(“INSERT INTO table_name ….”).另外,据我所知,下划线是在名称中使用的完全可接受的语法:foo_bar.那么我的问题是,为什么这个查询失败了:mysql_query("INSERT INTO ...
  • MySQL误使用关键字命名处理
  • 不要使用单引号。您需要在表名匹配周围使用反引号,因为它是MySQL中的保留名。以下是发生的错误:mysql>select*frommatch;ERROR1064(42000):YouhaveanerrorinyourSQLsyntax;...
  • 0.mysql报错如下 错误代码: 1064 You have an error in your SQL syntax;...最常见的是因为表名或字段名添加了双引号或单引号,不加引号或者加反引号即可。 错误代码: 单引号 CREATE TABLE 'T_ROLE' ( 'ID'
  • 其实很简单,例如:order就是mysql的关键字,建表之后,写SQL语句,一直提示有语法错误, 其实很简单,只需要在表名上加一个引用符号即可,这个符号不是单引号,是在tab键上的一个符号,可以试一下 ...
  • mysql别名使用问题 本内容来源于官方文档 英文不错的同学可以直接到文档 https://dev.mysql.com/doc/refman/8.0/en/problems-with-alias.html ...-- 别名带引号 select did as "d",avg(salary) from t_employ
  • 您不能在表名称中添加...但是,让我们首先尝试在带下划线的表名周围设置引号。以下是一个例子-mysql>createtable'Demo_Table725'(ClientIdintNOTNULLAUTO_INCREMENTPRIMARYKEY,ClientNamevarchar(100),Client...
  • Mysql数据库表名空格处理今天使用PowerDesigner搭建了一个小项目,最后执行完SQL脚本时才发现有2张表的表名中间多了一个空格,查完资料,最后并惊奇发现映射文件竟然多了2个`,就是shift+数字键1的那个,也就是他在...
  • 主要是备份的sql语句在表名和字段上加了双引号““,5.7的有些版本默认不支持。 首先执行: SET SESSION SQL_MODE=ANSI_QUOTES; 然后再执行备份。 若不成功,可提取出备份文件的sql语句,单独修改执行 ...
  • 1、MySQL中语句,“中文”表名或列明不一定都需要加引号''; 2、concat()函数注意事项
  • 测试了都不对,要么表名和字段名都不用引号,要么就用反引号(在波浪线按钮上) 如下:创建user表: create table if not EXISTS user (id int UNSIGNED AUTO_INCREMENT, userName VARCHAR(100) NOT NULL, ...
  • MySQL中反引号的用法

    2022-04-05 12:09:00
    所谓的保留字就是select database insert 这一类数据库的sql指令,当我们不得已要拿他们来做表名和字段名的时候 我们必须要加反引号来避免编译器把这部分认为是保留字而产生错误。 例如:SELECT`select`FROM`test`...
  • MySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如: 'an apple' "a book" 1.1 单引号 一般应使用英文单引号,如果字符串内需要包含单引号时,除了使用...
  • 解决核心:在表名上加上单引号。比如show—>‘show’,在mybatis中不可直接加’ '要用到转义字符。 好久没写blog了,今天刚考完网络后面还有一大段时间没考试可以学点技术了。但是,今天晚上被mysql卡了一晚上...
  • mysql引号和双引号

    2021-01-18 19:45:13
    表名,列名最好用`(esc下面那个,不用`会出错)这就要从双引号和单引号的作用讲起:双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出。例如:$abc='I love u';echo $...
  • MySQL中单引号,双引号和反引号的区别

    万次阅读 多人点赞 2019-06-22 18:34:09
    MySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如: 'an apple' "a book" 1.1 单引号 一般应使用英文单引号,如果字符串内需要包含单引号时,除了使用转义...
  • [数据库]mysql引号和双引号的用法

    千次阅读 2021-02-02 11:51:45
    [数据库]mysql引号和双引号的用法02016-03-17 15:00:03表名,列名最好用`(esc下面那个,不用`会出错)这就要从双引号和单引号的作用讲起:双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面...
  • 请留意这个单引号,该单引号不是中文 ‘ ’ ,也不是英文的 ’ ’其实这个不是单引号,而是反引号 (`) 这个符号(英文输入法下,数字键 1 左侧的那个按键)mysql中的 表名 和字段名使用的是反引号,解决名称冲突的...
  • 因此MySQL建表时对于表中涉及到的变量名,无论是否是内置数据类型,都需要添加反引号。注意这里是反引号,而不是单引号或双引号。反引号通过键盘ESC键下方的"~"按键可以输入(注意输入时切换成半角)。正确的SQL语句...
  • mysql下解决动态表名

    万次阅读 2018-07-19 14:17:03
    之前在编写一段sql,内容如下:show create table ?...经过研究,是jdbcTemplate在用表名替换占位符的时候,会自动在表名两边加上单引号,注意是单引号而不是~的那个点,~的那个点是没问题的,而单引号...
  • 是的,我们可以在表名周围使用反引号将下划线添加为表名。以下是语法-INSERTINTO`yourTableName`values(yourValue1,.......N);让我们首先创建一个表-mysql>createtable`DemoTable_1`(IdintNOTNULLAUTO_...
  • mysql中引用字符串常量时候需要用一对英文单引号或者双引号。在一般使用的时候你会发现单引号和双引号没有什么区别。 但是在转义时,我们会使用到单双引号,例如你要查询的字段里面本身就带有单引号或者双引号时,...
  • create table `create` ( -> id int -> ); Query OK, 0 rows affected (0.03 sec) ... check the manual that corresponds to your MySQL server version for the right syntax to use nea.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,830
精华内容 14,732
关键字:

mysql 表名引号

mysql 订阅