CREATE TABLE go-hie(
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)这样建表肯定会出错,应该这样:
CREATE TABLE `go-hie`(
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)如果你使用工具建表,它也会会自动的给表名加上``(就是键盘上面数字1左边的那个键)你访问go-hie表的时候,这样写就不会出错了。
select * from `go-hie`;
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)这样建表肯定会出错,应该这样:
CREATE TABLE `go-hie`(
id INT NOT NULL AUTO_INCREMENT,
a VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY key(id)
)如果你使用工具建表,它也会会自动的给表名加上``(就是键盘上面数字1左边的那个键)你访问go-hie表的时候,这样写就不会出错了。
select * from `go-hie`;
但我访问我的表goa时,怎么没用`go-hie`加引号的格式?还有访问表user_id也没用,直接就写着:
select * from user_id;select * from goa;??
一个名字可以由当前字符集中包含的文字与数字字符以及 下划线“_” 和 “$” 组成。可以看出,横线'-'并未在其中,也就是说它并不合法。但是从 MySQL 3.23.6 开始,引进了用``引用标识符,这样对于包含横线'-'的数据库名、表名和字段名,可以通过加``来定义和引用。例如:`go-hie`等,甚至我们可以在表名中使用空格:CREATE TABLE IF NOT EXISTS `a b`(
id INT not null AUTO_INCREMENT,
b VARCHAR(20) DEFAULT null,
PRIMARY KEY(id)
)同样,如果标识符是一个受限掉的词或包含特殊的字符,当使用它时,必须以一个 ` (backtick) 来引用它。
select * from `go-hie`;最后你说的user_id,goa是合法的标识符命名,所以不需要加``,当然加上也不会出错。
[WinMySQLAdmin]
Server=D:/mysql/bin/mysqld-nt.exe
现在是改成如下:
[WinMySQLAdmin]
Server=D:/mysql/bin/mysql.exe
basedir=d:/mysql
datadir=d:/mysql/data但还是不能启动,麻烦你再看看,问题出在哪里?我这里没有my.cnf 文件