这可能是一个愚蠢的问题,但是我真的不是SQL database的新手,例如,我想创建一个包含2个表的SQL database

表格1:

AccountID,

AccountUsername,

AccountPassword,


帐户ID将是主键。

表2:

AccountID

Calculation

TotalCalculation


AccountID将是外键。

每次我更新表1中的AccountID时,它都不会在表2中显示AccountID的数据,我对数据库确实是新手,也不知道是否可以这样做。

我想要实现的是:

表格1:

AccountID = 1;

AccountUsername = 'TestUsername'

AccountPassword = 'TestPassword'


表2:

AccountID = 1; - This is updated whenever I update the AccountID in Table 1.

Calculation = 123.123

TotalCalculation = 1234.1234

最佳答案

如果要在表1中更新帐户ID时自动更新表2中的帐户ID,请在表2上使用on update级联子句创建FK,例如

drop table if exists t,t1;
create table t
(accountid int primary key);

create table t1
(accountid int,
foreign key fk1(accountid) references t(accountid) on update cascade
);

insert into t values (1),(2);
insert into t1 values (1);

update t
    set accountid = 3 where accountid = 1;

select * from t;
+-----------+
| accountid |
+-----------+
|         2 |
|         3 |
+-----------+
2 rows in set (0.01 sec)

select * from t1;
+-----------+
| accountid |
+-----------+
|         3 |
+-----------+
1 row in set (0.00 sec)

关于mysql - SQL外键和主键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59247942/

10-09 08:47