免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: xxjoyjn
打印 上一主题 下一主题

问一个MSYQL的初级问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-05-22 15:35 |只看该作者
原帖由 xxjoyjn 于 2006-5-22 15:28 发表
你把desc student给我看看,

???
有这爱好?呵呵
我到喜欢看 show create table。


  1. mysql> desc student;
  2. +-------+-------------+------+-----+---------+----------------+
  3. | Field | Type        | Null | Key | Default | Extra          |
  4. +-------+-------------+------+-----+---------+----------------+
  5. | id    | int(4)      |      | PRI | NULL    | auto_increment |
  6. | name  | varchar(20) |      | MUL |         |                |
  7. | sex   | varchar(20) |      | MUL | male    |                |
  8. | age   | int(4)      | YES  | MUL | 0       |                |
  9. | dept  | varchar(20) | YES  | MUL | NULL    |                |
  10. +-------+-------------+------+-----+---------+----------------+
  11. 5 rows in set (0.01 sec)
复制代码

论坛徽章:
0
22 [报告]
发表于 2006-05-22 15:46 |只看该作者
呵呵,成功了,就是你说的那个地方的问题RIMARY KEY id,应该是PRIMARY KEY(id);
妈的!老是犯低级错误

谢谢你, 你的desc student 跟我的一样

[ 本帖最后由 xxjoyjn 于 2006-5-22 15:48 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2006-05-22 15:53 |只看该作者
还有,我发觉,show create table的时候都带``,我在写创建数据库脚本时不些``也是一样的吧?
show create table出来的时候,每个KEY约束都带一都自动增加了一个名字啊,我在脚本里可没有
设置名字啊,有趣

论坛徽章:
0
24 [报告]
发表于 2006-05-22 16:18 |只看该作者
原帖由 xxjoyjn 于 2006-5-22 15:46 发表
谢谢你, 你的desc student 跟我的一样

晕~
我用的就是你的语句,出来的结果当然和你的一样啦。

论坛徽章:
0
25 [报告]
发表于 2006-05-22 16:20 |只看该作者
原帖由 xxjoyjn 于 2006-5-22 15:53 发表
还有,我发觉,show create table的时候都带``,我在写创建数据库脚本时不些``也是一样的吧?
show create table出来的时候,每个KEY约束都带一都自动增加了一个名字啊,我在脚本里可没有
设置名字啊,有趣

如果你非要用 MySQL 的关键字来作为数据库、数据表、字段名的话,就一定要用“`”符号了。

论坛徽章:
0
26 [报告]
发表于 2006-05-22 16:27 |只看该作者
rardge,你注意到了没有,我在student表里定义一个外键dept references dept (name) ,
在dept表里面name字段不是主键也不是唯一键,严格来讲,dept里的name作为
student表的外键要么是主键,要么是唯一键才行的,怎么没有报错呀?奇怪!

我测试了一下,删除dept里的一个纪录,相应的纪录也在student里删除了,说明
foreign key (dept) references dept(name) on delete cascade 的确起作用了

论坛徽章:
0
27 [报告]
发表于 2006-05-22 16:30 |只看该作者
原帖由 rardge 于 2006-5-22 16:20 发表

如果你非要用 MySQL 的关键字来作为数据库、数据表、字段名的话,就一定要用“`”符号了。

            原来如此!

论坛徽章:
0
28 [报告]
发表于 2006-05-22 16:45 |只看该作者
原帖由 xxjoyjn 于 2006-5-22 16:27 发表
rardge,你注意到了没有,我在student表里定义一个外键dept references dept (name) ,
在dept表里面name字段不是主键也不是唯一键,严格来讲,dept里的name作为
student表的外键要么是主键,要么是唯一键才行的 ...

我记得手册中对这个问题有解释的,你看那个 innodb 的中文手册吧。
但按照一般的应用逻辑,应该是用唯一索引。

论坛徽章:
0
29 [报告]
发表于 2006-05-22 17:37 |只看该作者
奇怪,我在/etc/my.cnf里面没有启用innoDB,我怎么可以使用TYPE=InnoDB来创建表了?
看我的my.cnf内容,
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/var/
#innodb_log_arch_dir = /usr/local/mysql/var/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
# Set .._log_file_size to 25 % of buffer pool size
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=50

都没有启用,是怎么回事?我创建INNODB数据表居然没有报错?

论坛徽章:
0
30 [报告]
发表于 2006-05-22 23:00 |只看该作者
原帖由 xxjoyjn 于 2006-5-22 17:37 发表
奇怪,我在/etc/my.cnf里面没有启用innoDB,我怎么可以使用TYPE=InnoDB来创建表了?
看我的my.cnf内容,
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysq ...

呵呵,这个还真不知道了。
我以前也留意到这点了,不过没想过去研究它。
我在使用之前都是把 my.cnf 先修改好的,要么你自己看看手册研究一下吧。

保险起见,你还是先配置好再说。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP