尝试创建断言时出现无法解释的mysql错误
我目前正在学习mysql,我的实现是Arch Linux上的MariaDB,我在下面发布了尝试创建断言时出现无法解释的mysql错误,mysql,mariadb,Mysql,Mariadb,我目前正在学习mysql,我的实现是Arch Linux上的MariaDB,我在下面发布了状态,以防相关 问题是,我有一张表: MariaDB [biodb_sam]> SELECT * FROM pwms LIMIT 10; +---------+-----+------+-------+ | tfs_id | pos | base | value | +---------+-----+------+-------+ | hPDI060 | 1 | A | 0.01 | |
状态
,以防相关
问题是,我有一张表:
MariaDB [biodb_sam]> SELECT * FROM pwms LIMIT 10;
+---------+-----+------+-------+
| tfs_id | pos | base | value |
+---------+-----+------+-------+
| hPDI060 | 1 | A | 0.01 |
| hPDI060 | 1 | C | 0.01 |
| hPDI060 | 1 | G | 0.97 |
| hPDI060 | 1 | T | 0.01 |
| hPDI060 | 2 | A | 0.01 |
| hPDI060 | 2 | C | 0.48 |
| hPDI060 | 2 | G | 0.5 |
| hPDI060 | 2 | T | 0.01 |
| hPDI060 | 3 | A | 0.625 |
| hPDI060 | 3 | C | 0.01 |
+---------+-----+------+-------+
10 rows in set (0.00 sec)
但是,当我想添加一个简单的断言时,为了确保pos
始终为正,我得到以下错误:
MariaDB [biodb_sam]> CREATE ASSERTION foo CHECK(NOT EXISTS (SELECT * FROM pwms WHERE pos < 1));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ASSERTION foo CHECK(NOT EXISTS (SELECT * FROM pwms WHERE pos < 1))' at line 1
我想引用您链接的页面顶部的内容: 本页是Peter Gulutzan&Trudy Pelzer出版的《SQL-99完全》一书的一部分。作者们慷慨地允许我们在这里复制这本书的内容。因为本书是关于SQL-99标准的,所以本书和本书中其他页面的内容可能不会直接适用于MariaDB。使用导航栏导航书本 MariaDB特定的文档是不同的。您可以在mariadb的网站上找到支持的完整列表。此列表不包括创建断言,因此MariaDB不支持此功能,因此出现错误消息: 关于各种CREATE语句的文章
- 创建数据库创建数据库
- 创建事件 创建并安排新事件 一,
- 创建函数 创建一个存储函数
- 创建函数自定义项 创建用户定义的函数
- 创建索引 在一个或多个列上创建索引
- 创建过程 创建存储过程
- 创建角色 添加新角色
- 创建服务器 定义服务器 五,
- 创建表 创建新表
- 创建表空间 创建表空间在MariaDB中不可用
- 创建触发器 创建一个新触发器
- 创建用户 创建新帐户
- 创建视图 创建或替换视图
MariaDB [biodb_sam]> STATUS;
--------------
mysql Ver 15.1 Distrib 10.1.10-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 52
Current database: biodb_sam
Current user: sam@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.1.10-MariaDB-log MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /run/mysqld/mysqld.sock
Uptime: 1 day 16 hours 56 min 2 sec
Threads: 4 Questions: 6264 Slow queries: 0 Opens: 142 Flush tables: 1 Open tables: 64 Queries per second avg: 0.0
42
--------------