我似乎无法在我的两个表之间设置 外键。
这里是每个表的 CREATE 子句:
CREATE TABLE IF NOT EXISTS `dbname`.`CallRecord` (
`id` INT NOT NULL AUTO_INCREMENT,
`user_id` INT NOT NULL,
`city_id` INT NOT NULL,
`created` DATETIME NULL,
`timestamp` TIMESTAMP NULL,
PRIMARY KEY (`id`),
INDEX `user_id_fk_idx` (`user_id` ASC),
INDEX `city_id_fk_idx` (`city_id` ASC),
CONSTRAINT `user_id_fk`
FOREIGN KEY (`user_id`)
REFERENCES `dbname`.`User` (`id`)
ON DELETE RESTRICT
ON UPDATE NO ACTION,
CONSTRAINT `city_id_fk`
FOREIGN KEY (`city_id`)
REFERENCES `dbname`.`City` (`id`)
ON DELETE RESTRICT
ON UPDATE NO ACTION)
ENGINE = InnoDB;
这是另一张 table :
CREATE TABLE IF NOT EXISTS `dbname`.`DataCallAssoc` (
`id` INT NOT NULL AUTO_INCREMENT,
`data_id` INT NOT NULL,
`call_record_id` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `data_id_fk_idx` (`data_id` ASC),
INDEX `call_record_id_fk_idx` (`call_record_id` ASC),
CONSTRAINT `data_id_fk`
FOREIGN KEY (`data_id`)
REFERENCES `dbname`.`Data` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION,
CONSTRAINT `call_record_id_fk`
FOREIGN KEY (`call_record_id`)
REFERENCES `dbname`.`CallRecord` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB;
问题出在DataCallAssoc的最后一个CONSTRAINT:
CONSTRAINT `call_record_id_fk`
FOREIGN KEY (`call_record_id`)
REFERENCES `dbname`.`CallRecord` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
我收到此错误:
在 call_record_id 上创建外键时出错(检查数据类型)
即使我分别创建表和外键。其他所有外键都有效,甚至其他指向 CallRecord.id 作为外键的表也有效。
我还检查了 CallRecord.id 在结构上与 DataCallAssoc.call_record_id 相同。
最佳答案
如果您在另一个表中已经有同名的外键,则会发生错误创建外键...(检查数据类型)错误。因此,如果您遇到这个最无用的错误消息,请确保您的数据类型匹配并且外键名称也是唯一的。希望这对某人有所帮助。
关于MySQL 在 <ColumName> 上创建外键时出错(检查数据类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711232/
我正在用Ruby编写一个简单的程序来检查域列表是否被占用。基本上它循环遍历列表,并使用以下函数进行检查。require'rubygems'require'whois'defcheck_domain(domain)c=Whois::Client.newc.query("google.com").available?end程序不断出错(即使我在google.com中进行硬编码),并打印以下消息。鉴于该程序非常简单,我已经没有什么想法了-有什么建议吗?/Library/Ruby/Gems/1.8/gems/whois-2.0.2/lib/whois/server/adapters/base.
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife
我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查