易截截图软件、单文件、免安装、纯绿色、仅160KB

MYSQL外键(Foreign Key)的使用


在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。
外键的使用条件:
1.两个表必须是
InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
2.外键列必须建立了索引,MySQL
4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;
3.外键关系的两个表的列必须是数据类型相似,也就是可
以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;
外键的定义语法:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name,
...)
    REFERENCES tbl_name (index_col_name, ...)
    [ON DELETE
{RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
    [ON
UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
该语法
可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT
symbol,MYSQL会自动生成一个名字。
ON DELETE、ON UPDATE表示事件触发限制,可设参数:
RESTRICT(限
制外表中的外键改动)
CASCADE(跟随外键改动)
SET NULL(设空值)
SET DEFAULT(设默认值)
NO
ACTION(无动作,默认的)
搞个例子,简单演示一下使用,做dage和xiaodi两个表,大哥表是主键,小弟表是外键:
建表:
 1
CREATE
 
TABLE
 `dage` (
 2
  `id` 
int
(
11

NOT
 
NULL
 auto_increment,
 3
  `name` 
varchar
(
32

default
 
''
,
 4
  
PRIMARY
 
KEY
  (`id`)
 5
) ENGINE
=
InnoDB 
DEFAULT
 CHARSET
=
latin1;
 6
 7
CREATE
 
TABLE
 `xiaodi` (
 8
  `id` 
int
(
11

NOT
 
NULL
 auto_increment,
 9
  `dage_id` 
int
(
11

default
 
NULL
,
10
  `name` 
varchar
(
32

default
 
''
,
11
  
PRIMARY
 
KEY
  (`id`),
12
  
KEY
 `dage_id` (`dage_i


相关文档:

Mysql锁机制

mysql锁机制
mysql中对表级的存储引擎来说是释放死锁的,避免死锁可以这样做到:在任何查询之前先请求锁,并且按照请求的顺序锁表。
Mysql中用于write(写)的表锁的实现机制如下:
如果表没有加锁,那么就加一个写锁。否则的话,将请求放到写锁队列中。
mysql中用于read(读)的表锁的实现机制如下:
如果表没有加锁,那么 ......

How to use MySql via Linq to SQL

The vs2008 and vs2010 don't support the generation LINQ to SQL business objects from a MySQL database, if you drop a MySql table to a Linq to Sql Class, it will popup a "The selected object(s) use an unsupported data provider" error.
Generation tool DBLinq
DbLinq is a LINQ to SQL data co ......

mysql concat,substring用法


在工作中碰到一个Mysql字段更新问题
在custom表中有一个tariffurl的值中有如下情况:
uploadfiles ariff2007031172720306698.jpg以及uploadfiles ariff2007031172720306690.jpg;uploadfiles ariff2007031172720306691.jpg形式
要更改成uploadfiles/tariff/200703/1172720306698.jpg及 uploadfiles/tariff/200703/11727 ......

MySql创建函数

首先需要查看一下创建函数的功能是否开启:
mysql> show variables like '%func%';
+-----------------------------------------+-------+
| Variable_name                          ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号