如何使用mysql中的现有列添加外键

如何使用mysql中的现有列添加外键,mysql,Mysql,我有一个名为transactions的下表,我想使用列account_id添加外键。但当我执行查询时,请参见下面受影响的0行。我不明白这个问题出了什么问题 我有两个表叫做交易和账户。Accounts表以id作为主键,并且account具有多个事务 交易表 账目表 运行查询后,列不应该显示F_K或类似PRI的内容吗? 任何帮助都会很好。谢谢 你的问题很好。受影响的0行仅意味着任何行中的数据均未更改,这是添加外部关键字时所需的结果;您的查询是完全正确的,但不会影响数据库中的任何行,这就是为什么返回0

我有一个名为transactions的下表,我想使用列account_id添加外键。但当我执行查询时,请参见下面受影响的0行。我不明白这个问题出了什么问题

我有两个表叫做交易和账户。Accounts表以id作为主键,并且account具有多个事务

交易表

账目表

运行查询后,列不应该显示F_K或类似PRI的内容吗?
任何帮助都会很好。谢谢

你的问题很好。受影响的0行仅意味着任何行中的数据均未更改,这是添加外部关键字时所需的结果;您的查询是完全正确的,但不会影响数据库中的任何行,这就是为什么返回0行affectedoh愚蠢的我!但是,当列和表存在时,这是添加外键的正确方法吗?@amjad是的,这是添加外键的正确方法。。。
+---------------------+--------------+------+-----+---------+----------------+
| Field               | Type         | Null | Key | Default | Extra          |
+---------------------+--------------+------+-----+---------+----------------+
| id                  | int(11)      | NO   | PRI | NULL    | auto_increment |
| account_number      | int(11)      | YES  |     | NULL    |                |
| m_number            | varchar(255) | YES  |     | NULL    |                |
| registration_number | varchar(255) | YES  |     | NULL    |                |
| page_number         | varchar(255) | YES  |     | NULL    |                |
| entry_date          | datetime     | YES  |     | NULL    |                |
| narration           | varchar(255) | YES  |     | NULL    |                |
| voucher_number      | varchar(255) | YES  |     | NULL    |                |
| debit_credit        | float        | YES  |     | NULL    |                |
| profit              | float        | YES  |     | NULL    |                |
| account_code        | int(11)      | YES  |     | NULL    |                |
| balance             | float        | YES  |     | NULL    |                |
| branch              | varchar(255) | YES  |     | NULL    |                |
| account_id          | int(11)      | YES  | MUL | NULL    |                |
| created_at          | datetime     | YES  |     | NULL    |                |
| updated_at          | datetime     | YES  |     | NULL    |                |
+---------------------+--------------+------+-----+---------+----------------+
16 rows in set (0,01 sec)

mysql> ALTER TABLE transactions ADD FOREIGN KEY (account_id) REFERENCES accounts(id);
Query OK, 0 rows affected (0,03 sec)
Records: 0  Duplicates: 0  Warnings: 0
+-----------------+--------------+------+-----+---------+----------------+
| Field           | Type         | Null | Key | Default | Extra          |
+-----------------+--------------+------+-----+---------+----------------+
| id              | int(11)      | NO   | PRI | NULL    | auto_increment |
| account_number  | int(11)      | YES  |     | NULL    |                |
| account_code    | int(11)      | YES  |     | NULL    |                |
| branch          | varchar(255) | YES  |     | NULL    |                |
| name            | varchar(255) | YES  |     | NULL    |                |
| father_name     | varchar(255) | YES  |     | NULL    |                |
| nic_number      | varchar(255) | YES  |     | NULL    |                |
| mohalla         | varchar(255) | YES  |     | NULL    |                |
| village         | varchar(255) | YES  |     | NULL    |                |
| nominee         | varchar(255) | YES  |     | NULL    |                |
| relationship    | varchar(255) | YES  |     | NULL    |                |
| opening_balance | float        | YES  |     | NULL    |                |
| opening_date    | datetime     | YES  |     | NULL    |                |
| created_at      | datetime     | YES  |     | NULL    |                |
| updated_at      | datetime     | YES  |     | NULL    |                |
+-----------------+--------------+------+-----+---------+----------------+