MariaDB 在创建外键的时候提示 1005 错误

在 MariaDB 中的表创建外键的时候提示错误:

SQL Error (1005): Can't create table `edx`.`TestBankAnswer` (errno: 150 "Foreign key constraint is incorrectly formed")

MariaDB-FK-ERROR-01

导致这样原因是因为你的表中没有创建 PK (主键)。

你需要在你的表上面创建主键后再创建外键就可以了。

 

https://www.ossez.com/t/mariadb-1005/225

### 如何在 MariaDB创建表 在 MariaDB 中,`CREATE TABLE` 是用于定义新表结构的核心 SQL 命令。以下是创建表的标准语法: ```sql CREATE TABLE table_name ( column1_name data_type constraints, column2_name data_type constraints, ... ); ``` 其中: - `table_name` 表示要创建的新表名称。 - `columnX_name` 是列名,`data_type` 是该列的数据类型(如 INT, VARCHAR(255), DATE 等),而 `constraints` 则表示约束条件(如 PRIMARY KEY、NOT NULL 等)。[^1] #### 创建带有简单字段的表的例子 下面是一个具体的例子,展示如何在 MariaDB创建一张名为 `employees` 的表。 ```sql CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, email VARCHAR(100), hire_date DATE ); ``` 上述代码片段中: - 使用了 `INT AUTO_INCREMENT PRIMARY KEY` 来设置主并启用自动增长功能。 - 字符串类型的字段使用了 `VARCHAR(n)`,其中 n 表示字符的最大长度。 - 对于日期型数据,则采用了 `DATE` 类型。 如果需要向已存在的表中新增一列或多列,可以采用如下命令形式完成操作: ```sql ALTER TABLE table_name ADD COLUMN new_column_name datatype; ``` 例如,在已有表 `test` 上增加整数类型的一列 `id` 可通过以下方式实现: ```sql ALTER TABLE test ADD COLUMN id INT; ``` 关于更复杂的场景或者高级特性,比如远程连接配置、跨平台迁移以及特定环境下的优化方案等内容则涉及到了其他方面知识,可进一步查阅相关内容获取更多信息[^2]。 对于循环控制语句的应用差异需要注意的是,MariaDB继承自MySQL的部分特点决定了它同样不具备直接支持某些PL/SQL风格的功能项,像FOR...IN...LOOP这样的表达就需要转换成WHILE等形式加以替代[^3]. 最后提醒一点就是执行任何修改类的操作之前最好明确指定作用范围以免误伤到无关记录[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HoneyMoose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值