MYSql 建表的同時添加外鍵的語句
ALTER TABLE B
ADD CONSTRAINT fk_B_A
FOREIGN KEY (ordersId)
REFERENCES orderts(ordersId);
如果你還不是很明白的話, 下面是詳細的例子:
-- 創建測試主表. ID 是主鍵.
CREATE TABLE test_main (
id INT NOT NULL,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 創建測試子表.
CREATE TABLE test_sub (
id INT NOT NULL,
main_id INT ,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 插入測試主表數據.
INSERT INTO test_main(id, value) VALUES (1, 'ONE');
INSERT INTO test_main(id, value) VALUES (2, 'TWO');
-- 插入測試子表數據.
INSERT INTO test_sub(id, main_id, value) VALUES (1, 1, 'ONEONE');
INSERT INTO test_sub(id, main_id, value) VALUES (2, 2, 'TWOTWO');注意,MySQL 建立表的時候,需要確認引擎,是否是 InnoDB 。
Innodb存儲引擎支持FOREIGN KEY和REFERENCES子句。
Innodb存儲引擎執行ADD [CONSTRAINT [symbol]] FOREIGN KEY (。) REFERENCES 。 (。)。請參見15.2.6.4節,“FOREIGN KEY約束”。
對于其它存儲引擎,這些子句會被分析,但是會被忽略。
注意,MySQL 外鍵,必須指定 主表的列名稱
mysql>ALTER TABLE test_sub
->ADD CONSTRAINT main_id_cons
->FOREIGN KEY (main_id)
->REFERENCES test_main(id);
->//
Query OK, 2 rows affected (0.17 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql>DELETE FROM
->test_main
->WHERE
->id = 1;
->//
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constrai
nt fails (`test`.`test_sub`, CONSTRAINT `main_id_cons` FOREIGN KEY (`main_id`) R
EFERENCES `test_main` (`id`))
mysql 外鍵約束語句是什么
給你個示例:
create table t1
(
id int primary key,
name varchar(20)
);
create table t2
(
record_id int,
id int references t1(id), /*表示列id到表t1的列id的外鍵*/
remark varchar(100)
);
mysql下,建立外鍵時一定要注意關聯的列一定要數據類型、長度要一致,否則會報錯。
mysql里面用語句建立表外鍵的命令
第一招、mysql服務的啟動和停止
net stop mysql
net start mysql
第二招、登陸mysql
語法如下: mysql -u用戶名 -p用戶密碼
鍵入命令mysql -uroot -p, 回車后提示你輸入密碼,輸入12345,然后回車即可進入到mysql中了,mysql的提示符是:
mysql>
注意,如果是連接到另外的機器上,則需要加入一個參數-h機器IP
第三招、增加新用戶
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
如,增加一個用戶user1密碼為password1,讓其可以在本機上登錄, 并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,然后鍵入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"。
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
第四招: 操作數據庫
登錄到mysql中,然后在mysql的提示符下運行下列命令,每個命令以分號結束。
1、 顯示數據庫列表。
show databases;
缺省有兩個數據庫:mysql和test。 mysql庫存放著mysql的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2、 顯示庫中的數據表:
use mysql;
show tables;
3、 顯示數據表的結構:
describe 表名;
4、 建庫與刪庫:
create database 庫名;
drop database 庫名;
5、 建表:
use 庫名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中記錄:
delete from 表名;
7、 顯示表中的記錄:
select * from 表名;
mysql里面用語句建立表外鍵的命令
第一招、mysql服務的啟動和停止net stop mysqlnet start mysql第二招、登陸mysql語法如下: mysql -u用戶名 -p用戶密碼鍵入命令mysql -uroot -p, 回車后提示你輸入密碼,輸入12345,然后回車即可進入到mysql中了,mysql的提示符是:mysql>注意,如果是連接到另外的機器上,則需要加入一個參數-h機器IP第三招、增加新用戶格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"如,增加一個用戶user1密碼為password1,讓其可以在本機上登錄, 并對所有數據庫有查詢、插入、修改、刪除的權限。
首先用以root用戶連入mysql,然后鍵入以下命令:grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"。如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";第四招: 操作數據庫登錄到mysql中,然后在mysql的提示符下運行下列命令,每個命令以分號結束。1、 顯示數據庫列表。
show databases;缺省有兩個數據庫:mysql和test。 mysql庫存放著mysql的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2、 顯示庫中的數據表:use mysql;show tables;3、 顯示數據表的結構:describe 表名;4、 建庫與刪庫:create database 庫名;drop database 庫名;5、 建表:use 庫名;create table 表名(字段列表);drop table 表名;6、 清空表中記錄:delete from 表名;7、 顯示表中的記錄:select * from 表名;。
用mysql時,外鍵報錯,語句如下,在線等
create table Sc(
Sno char(7) not null,
Cno char(6) not null,
Grade smallint,
Primary key(Sno,Cno),
index ind_sno (Sno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
index ind_Cno (Cno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
)
什么叫mysql的外鍵啊
從上面的這個圖可以看到在設計的時候,就給表1添加一個外鍵,這個外鍵就是表2中的學號字段,那么這樣表1就是主表,表2就是子表。
所以結合2張表就能保持數據的一致性、完整性(估計就是還原成原來的那張大表)。借著這個例子再談談外鍵的一些事項:1、表1可以有一個或者多個外鍵,也可以沒有。
(如果表1有多個外鍵可不可以是這樣的情況,表2中的多個字段是表1的外鍵;或者說表1的多個外鍵是在多個表中)2、這個外鍵可以不是表1的主鍵,但必須是子表的主鍵。(簡單的說就是,如果一個字段是某個表的外鍵時,那么該字段必須是主鍵)。