silverlight 4.0外键如何赋值

您所在的位置: &
MySQL数据库外键的相关知识详解
MySQL数据库外键的相关知识详解
本文我们以一个具体的例子来介绍了MySQL数据库外键的相关知识,以及使用外键时的一些相关的注意事项,希望能够对您有所帮助。
MySQL数据库外键的相关知识是本文我们主要要介绍的内容,接下来我们通过一个具体的例子来逐步介绍这些设置。假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做pc;用来保存配件供货信息的表叫做parts。
在pc表中有一个字段,用来描述这款电脑所使用的CPU型号;在parts表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)&&pc表中的CPU型号受到parts表中型号的约束。
首先我们来创建parts表:
CREATE TABLE parts ( ... 字段定义 ..., model VARCHAR(20) NOT NULL, ... 字段定义 ... );
接下来是PC表:
CREATE TABLE pc ( ... 字段定义 ..., cpumodel VARCHAR(20) NOT NULL, ... 字段定义 ... };
若要设置外键,在参照表 (referencing table,即pc表) 和被参照表(referenced table,即parts表)中,相对应的两个字段必须都设置索引(index)。
对parts表:
ALTER TABLE parts ADD INDEX idx_model (model);
这句话的意思是,为parts表增加一个索引,索引建立在model字段上,给这个索引起个名字叫idx_model。
对pc表也类似:
ALTER TABLE pc ADD INDEX idx_cpumodel (cpumodel);
事实上这两个索引可以在创建表的时候就设置。这里只是为了突出其必要性。
下面为两张表之间建立前面所述的那种&约束&。因为pc的CPU型号必须参照parts表中的相应型号,所以我们将pc表的cpumodel字段设置为&外键&(FOREIGN KEY),即这个键的参照值来自于其他表。
ALTER TABLE pc ADD CONSTRAINT fk_cpu_model& FOREIGN KEY (cpumodel)& REFERENCES parts(model);
第一行是说要为pc表设置外键,给这个外键起一个名字叫做fk_cpu_model;第二行是说将本表的cpumodel字段设置为外键;第三行是说这个外键受到的约束来自于parts表的model字段。
这样,我们的外键就搞好了!如果我们试着CREATE一台pc,它所使用的CPU的型号是parts 表中不存在的,那么MySQL会禁止这台PC被CREATE出来。
考虑以下这种情况:
技术人员发现,一个月之前输入到parts表中的某个系列的cpu(可能有很多款)的型号全都输错了一个字母,现在需要改正。我们希望的是,当parts表中那些 Referenced Column 有所变化时,相应表中的 Referencing Column 也能自动更正。
可以在定义外键的时候,在最后加入这样的关键字:ON UPDATE CASCADE;即在主表更新时,子表(们)产生连锁更新动作,似乎有些人喜欢把这个叫&级联&操作。
如果把这语句完整的写出来,就是:
ALTER TABLE pc ADD CONSTRAINT fk_cpu_model& FOREIGN KEY (cpumodel)& REFERENCES parts(model) ON UPDATE CASCADE;
除了CASCADE外,还有RESTRICT(禁止主表变更)、SET NULL
补充说明:
如果需要在主表删除记录时,当子表有对应记录则不允许删除,就加上 ON delete restrict 。完整案例如下:
两个表,国家和城市,城市中的country_id是外键。
Create&table&country( &country_id&smallint&unsigned&not&null&auto_increment, &country&varchar(50)&not&null, &last_update&timestamp&not&null, &primary&key(country_id) &)engine=innoDB&default&charset=utf8; &Create&table&city( &city_id&smallint&unsigned&not&null&auto_increment, &city&varchar(50)&not&null, &country_id&smallint&unsigned&not&null, &last_update&timestamp&not&null&default&current_timestamp&on&update&curren_timestamp, &Primary&key(city_id), &key&idx_fk_country_id&(country_id), &constraint&fk_city_country&Foreign&Key(country_id)&References&country(country_id)&on&DELETE&restrict&ON&update&cascade &)engine=innoDB&default&charset=utf8;&
删除外键定义
定义外键的时候articles.member_id外键比articles.category_id子句多了一个CONSTRAINT fk_member ?
这个fk_member就是用来删除外键定义用的,如下所示:
mysql&ALTER&TABLE&articles&DROP&FOREIGN&KEY&fk_ &Query&OK,&1&row&affected&(0.25&sec) &Records:&1&Duplicates:&0&Warnings:&0&
这样articles.member_id外键定义就被删除了,但是如果定义时没有指定CONSTRAINT fk_symbol (即外键符号)时该怎么删除呢?别急,没有指定时,MySQL会自己创建一个,可以通过以下命令查看:
mysql&SHOW&CREATE&TABLE& &+&&&-+&&&&&&&&&&&&+ &|&Table&&&&|&Create&Table&&&&&&&&&&&&&&&&&&&&&&&| &+&&&-+&&&&&&&&&&&&+ &|&articles&|&CREATE&TABLE&`articles`&( &`article_id`&int(11)&unsigned&NOT&NULL&auto_increment, &`category_id`&tinyint(3)&unsigned&NOT&NULL, &`member_id`&int(11)&unsigned&NOT&NULL, &`title`&varchar(255)&NOT&NULL, &PRIMARY&KEY&(`article_id`), &KEY&`category_id`&(`category_id`), &KEY&`member_id`&(`member_id`), &CONSTRAINT&`articles_ibfk_1`&FOREIGN&KEY&(`category_id`)&REFERENCES&`categories`&(`id`) &)&ENGINE=InnoDB&DEFAULT&CHARSET=latin1&&&&&&&&&&| &+&&&-+&&&&&&&&&&&&+ &1&row&in&set&(0.01&sec)&
可以看出articles.category_id的外键符号为articles_ibfk_1,因为就可以执行以下命令删除外键定义:
mysql&ALTER&TABLE&articles&DROP&FOREIGN&KEY&articles_ibfk_1; &Query&OK,&1&row&affected&(0.66&sec) &Records:&1&Duplicates:&0&Warnings:&0&
关于MySQL数据库外键的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
MySQL 5.6.10已经发布,Oracle将其称之为MySQL 5.6正式版。51CTO
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
Oracle集群,也称Oracle RAC,称为“真正应用集群”。
Oracle数据库会经常出现一些Error错误信息,本专题将
作为Oracle数据库中比较重要的索引,大家如何才能构建
本书以BI解决方案的体系结构为中心,以SQL Server 2005为载体,将着眼点放在数据挖掘和商业智能上,详细讲解了数据报表、数据分
51CTO旗下网站dotfun 的BLOG
用户名:dotfun
文章数:277
评论数:92
访问量:217110
注册日期:
阅读量:5863
阅读量:12276
阅读量:292083
阅读量:1014894
[匿名]同一人:
51CTO推荐博文
这段时间在项目中用到了在Silverlight应用程序中显示Html content的情况,初期的思路是在包含Silverlight的aspx或html页面里一个div,在div里include一个iframe,然后通过设计windowless=true实现HTML与Silverlight重叠显示,经过试验iframe的确可以和Silverlight同时显示了,但接着又出现了一个big mistake,就是Silverlight这边的基本控件TextBox不能工作输入汉字了,英文字符可以,不得不说这是Silverlight的一个bug。经过search了一下发现目前还没有彻底的解决办法,都是通过html的input代替,但是这样的问题是input的位置不能用silverlight内置的布局控制,接下来就考虑通过CSS定义z-index来将iframe置于silverlight前面,这样就可以在windowless=false的情况下将html显示在silverlight前面,但是又来了一个问题,就是一但在silverlight这边click mouse时iframe焦点丢失后,html的zindex就跑到silverlight的后面了,使得html不可见了。
既然如此,那么我们又通过给焦点的方式解决,就是用javascript的iframe.focus()结果问题依旧,看来想用html和silverlight同台是真是没戏了……,不过最后在Silverlight.net上的贴子发现了一个小的细节,就是给iframe的属性赋值,看起来就是一个等号,却解决了焦点的问题,下面分享一下代码:
&html&&head&&&& &title&teststitle&&&& &script type="text/javascript"&&&&&&&& function onmyblur() {&&&&&&&&&& var d = document.getElementById("myid");&&&&&&&&&&& d.style.height = 0;&&&&&&&&&&& d.style.height = 400;&&&&&&&&&& // d.focus();&&&&&&& }&&& script&&&&&&& &style type="text/css"&&&& html, body {&&&& height: 100%;&&&& overflow:&&& }&&& body {&&&& padding: 0;&&&& margin: 0;&&& }&&& #silverlightControlHost {&&&& height: 100%;&&&& text-align:&&& }&&& style&head&&body&&&& &div id="silverlightControlHost"&&&&&&&& &object data="data:application/x-silverlight-2," type="application/x-silverlight-2"&&&&&&&&&&& width="100%" height="100%"&&&&&&&&&&&& &param name="source" value="ClientBin/test4.xap" /&&&&&&&&&&&& &param name="onError" value="onSilverlightError" /&&&&&&&&&&&& &param name="background" value="white" /&&&&&&&&&&&& &param name="minRuntimeVersion" value="4.0.50303.0" /&&&&&&&&&&&& &param name="autoUpgrade" value="true" /&&&&&&&&&&&& &a href="" style="text-decoration: none"&&&&&&&&&&&&&&&& &img src="" alt="Get Microsoft Silverlight"&&&&&&&&&&&&&&&&&&& style="border-style: none" /&&&&&&&&&&&& a&&&&&&&& object&&&&&&&& &iframe id="_sl_historyFrame" style="visibility: height: 0 width: 0&&&&&&&&&&& border: 0px"&iframe&&&& div&&&& &&& &div style="background-color:Gposition: z-index: 1010; left: 0 top: 0 width: 100%;height:100px"&&&& div&&&& &div id="mydiv"& style="position: z-index: 1010; left: 250 top: 50 width: 300&&&&&&& height: 400"&&&&&&&& &iframe id="myid" onblur="onmyblur();"& name="myid" src=""&& iframe&&&& div&body&html&希望对大家有用~&& 本博客内容转载请务必注明出处,谢谢。
&本文出自 “” 博客,转载请与作者联系!
了这篇文章
类别:┆阅读(0)┆评论(0)
15:50:02 15:02:14 22:16:46 10:43:49您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
基于Silverlight与WCF的电网主接线图形编辑系统研究与应用.pdf71页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:200 &&
你可能关注的文档:
··········
··········
英文摘要 ABSTRACT me infhstmctllreswhicharerelatedto isoneof most the Power鲥d importaIlt ofmenationaleconomiccons仇lctionand nomalliVes.IIl
rapid people’s deVelopmeIlt to alld deIIl锄don
order ke印powersupplyContinuouslystably,aIldsatis匆tlle power economic lastest and usedto
鲥d operationcomputertechIlologypower酣ddia伊锄is Visual of data.o山阿ent
inlplemeIltediting如nctionpower鲥dtopology觚d
power鲥d in 0r
orieIlted are PC systems dia伊锄editing mnIlingsin西e
aIldtllerearesome of iIl aIld di岱cunysystem probleIlls
maintenance. To d锄a11d a11ddata oftlle salis矽tlle 0n鲫hicediting,datapr印ration prestation i11 economical
sen,ice-orieIltedand
power鲥dequipmentpower鲥d operation,a aIld impl锄饥ted
Brows盯/SeⅣ昏based B/S power面deditingsyst锄isdesi盟ed by melaStest 3.0andWCFservices defined
using SilVerlight techn0109y.Userpower鲥d aIldmeir wererealized
equipmeIltdia黟锄controlsediting如nctions byusing side were aS
SilV盯li曲t孤dCjf| language.Serverapplicationsdesi印edmulti-layer meWCFservice intemce,clieIlt―side
architecture.Throu曲calling SilVenight datawim seⅣices
WCFcustom conun砌catedseⅣ*side
印plication byusing binding. This me taSks: following p印erh嬲accomplished the ofthearChitecturea11d ofcun.ent ①Analysedproblenls impl锄entationpower or memnctional and tools,锄d requiremeIlts editingsystelIl investigated
鲫ddia莎am
non―Rmctional of system. requi啪lentspower鲥ddia黟amediting ResearChedsoftwarearchitecture and ② tectmologydesignpatt锄tecllllolo科
ArchitectIedme interf:狁e servicesinterface system勰userlayer’WCF layer,business aIlddataaccess detailed
each劬ction
10百claycr lay盯,锄d desi印ed layerbyusing pattenl.
databaseaccess in.NETFr锄ework ③Researched 3.5, LINQSQL tecllIlology of in data
and me dataaccess eIlcapsulation impl锄eIlted operation劬
正在加载中,请稍后...

我要回帖

更多关于 silverlight 4.0 的文章

 

随机推荐