PHP中文俱乐部's Archiver

roberthong 发表于 2008-3-25 22:21

MySql 不能创建外键问题

本人最近遇到一个无法建立外键的问题,百思不得其解,特向大侠们求教。先谢谢了。

问题描述如下:

我在数据库中准备建立如下2个表:
create table (
        lngUid bigint unsigned NOT NULL auto_increment,
        strUserName varchar(128) UNIQUE NOT NULL,
        PRIMARY KEY (lngUid)
)type=innodb;
create table tbUserInfo(
        lngUid bigint,
        strPassword varchar(32),
        index(lngUid),     // 无论是否建立索引,均返回同样错误。
        FOREIGN KEY(lngUid) REFERENCES tbusers(lngUid) on delete cascade
)type=innodb;

结果:表一(tbUsers)成功建立了,但在创建表二的时候,mysql返回: #1005 - Can't create table '.\test\tbuserinfo.frm' (errno: 150)

my.ini 如下:
[mysqld]
basedir=D:\VertrigoServ\Mysql\
datadir=D:\VertrigoServ\Mysql\data\
port                = 3306
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 32
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
innodb_data_file_path = ibdata1:100M:autoextend  \\无论是否加上这个参数,效果一样。

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
[WinMySQLadmin]
Server=D:\VertrigoServ\Mysql\bin\mysqld.exe

roberthong 发表于 2008-3-28 13:09

回复: MySql 不能创建外键问题

這個問題我已經解決了。

netfunner 发表于 2008-5-29 09:34

回复: MySql 不能创建外键问题

朋友,晒晒你的心得,学习学习!

roberthong 发表于 2008-6-8 11:02

回复: MySql 不能创建外键问题

[quote]朋友,晒晒你的心得,学习学习![/quote]
這個問題,是我沒有注意到2個表之間關聯字段的類型不同。
表1是:lngUid bigint unsigned
表2是:lngUid bigint

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.