Mysql数据库表名空格处理
今天使用PowerDesigner搭建了一个小项目,最后执行完SQL脚本时才发现有2张表的表名中间多了一个空格,查完资料,最后并惊奇发现映射文件竟然多了2个`,就是shift+数字键1的那个,也就是他在脚本是这样写的:
create table `table1`(....);
问题解决。
PS:从网上找到的资料:
作为一个Oracle DBA,MySQL很多SQL语法与Oracle的还是有很多差异的。
这里我将要在MySQL里建一个表,表名为”Test Table”, 其中一个列名为”First Name”,当我用下列SQL语句来创建此表时,MySQL返回下列错误:
mysql> create table “Test Table2″ (id int, “First Name” varchar(200));
ERROR
1064 (42000): 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 ‘”Test Table2″ (id int, “First Name” varchar(200))’ at line 1
这个MySQL数据库是按照默认配置安装的。
那么改如何解决这个问题呢?
方法1:
使用 ` (即数字键1左边那个键)符来代替上面的双引号,就像下面
create table `Test Table2` (id int, `First Name` varchar(200));
方法2:
修改MySQL的配置文件my.cnf文件,在[mysqld]此项中添加下面参数,然后重启MySQL使之生效
sql_mode = ANSI_QUOTES
方法3:
在启动MySQL时添加一个启动选项
mysqld_safe –user=mysql –sql-mode=ANSI_QUOTES &
相关文档:
给mysql开一个可以远程访问的用户命令如下:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
"*.*" 表示数据库中所有的表,也可以换成指定的表如test.*
"myuser" 表示的是访问的用户名;
"%" 表示所有的主机即任何的主机都可以通过这个用户名访问我的数据库,也可以该成特定� ......
尽可能地使用最有效(最小)的类型。MySQL有很多节省磁盘空间和内存的专业化类型。
如果可能使表更小,使用较小的整数类型。例如,MEDIUMINT经常比INT好一些。
如果可能,声明列为NOT NULL。它使任何事情更快而且你为每列节省一位。注意如果在你的应用程序中你确实需要NULL,你应该毫无疑问使用它,只是避免缺省地在所� ......
在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。
在 SQL Server 中可以这样处理:
if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = ......
1: Can’t connect to [local] MySQL server错误
一个MySQL客户可以两种不同的方式连接mysqld服务器:Unix套接字,它通过在文件系统中的一个文件(缺省“/tmp /mysqld.sock”)进行连接;或TCP/IP,它通过一个端口号连接。Unix套接字比TCP/IP更快,但是只有用在连接同一台计算机上的服务器。如果� ......
1、下载MySQL的Linux安装文件
Linux下安装MySQL需要下面两个文件:
MySQL-server-5.1.7-0.i386.rpm
下载地址为:http://dev.mysql.com/downloads/mysql/5.1.html,打开此网页,下拉网页找到“Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads”项,找到“Ser ......