gpt4 book ai didi

python - _mysql_exceptions.IntegrityError : (1215, 'Cannot add foreign key constraint' )

转载 作者:行者123 更新时间:2023-12-05 06:38:21 24 4
gpt4 key购买 nike

我使用 Ontonotes DB 工具,但遇到了问题。

我看了它的文档,说这个工具在mysql 5.0上运行良好。但是,我找不到这个版本。所以,我安装了 mysql 5.7。出现这个问题,问题是这样的:

python on/tools/init_db.py --init ontonotes localhost root ontonotes-release-4.0/

正在初始化数据库...

/Users/anaconda/lib/python2.7/site-packages/on/init.py:525: Warning: Unknown table 'ontonotes.tree' cursor.execute("""drop table if exists %s;""" % thing.sql_table_name)

create table tree
(
id varchar(255) not null collate utf8_bin primary key,
parent_id varchar(255),
document_id varchar(255),
word varchar(255),
child_index int,
start int not null,
end int not null,
coref_section int not null,
syntactic_link_type varchar(255),
tag varchar(255) not null,
part_of_speech varchar(255),
phrase_type varchar(255),
function_tag_id varchar(255),
string longtext,
no_trace_string longtext,
parse longtext,
foreign key (parent_id) references tree.id,
foreign key (document_id) references document.id,
foreign key (syntactic_link_type) references syntactic_link_type.id,
foreign key (part_of_speech) references pos_type.id,
foreign key (phrase_type) references phrase_type.id,
foreign key (function_tag_id) references compound_function_tag.id
)
default character set utf8;

Traceback (most recent call last): File "on/tools/init_db.py", line 81, in on.ontonotes.initialize_db(a_cursor) File "/Users/anaconda/lib/python2.7/site-packages/on/init.py", line 528, in initialize_db cursor.execute(thing.sql_create_statement) File "/Users/anaconda/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute self.errorhandler(self, exc, value) File "/Users/anaconda/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.IntegrityError: (1215, 'Cannot add foreign key constraint')

创建了三个表:

create table ontonotes
(
id varchar(255) not null primary key

)
default character set utf8;


create table subcorpus
(
id varchar(255) not null primary key,
base_dir varchar(255) not null,
top_dir varchar(255) not null,
root_dir varchar(255) not null,
language_id varchar(255) not null,
encoding_id varchar(255) not null,
ontonotes_id varchar(255) not null

)
default character set utf8;

create table file
(
id varchar(255) not null primary key,
base_dir varchar(255) not null,
physical_filename varchar(255) not null,
document_id varchar(255) not null,
file_type varchar(255) not null,
subcorpus_id varchar(255) not null
)
default character set utf8;

我真的不知道怎么解决这个问题,因为我对mysql不熟悉。谁能帮帮我,或者给我一个mysql 5.0版本(linux 64bit/mac 64bit)?很想你!

最佳答案

ontonotes 作者选择 myisam 作为引擎,它忽略了 fks。他们将它们留在模式定义中,因为

“即使 MyISAM 忽略外键约束,我们将它们包含在表创建语句中以记录它们”。第10页,官方Ontonnotes-v5工具文档

如果你使用,例如 innodb,这是一个问题。所以答案是:要么使用 myisam,要么从所有 模式定义中删除 fk 约束。

我建议导入 LDC 分发包中包含的压缩转储

关于python - _mysql_exceptions.IntegrityError : (1215, 'Cannot add foreign key constraint' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com