gpt4 book ai didi

mysql - 尝试创建断言时无法解释的 mysql 错误

转载 作者:行者123 更新时间:2023-11-29 02:51:53 25 4
gpt4 key购买 nike

我目前正在学习 mysql,我的实现是 Arch Linux 上的 MariaDB,我在下面发布了 STATUS 以防相关。

问题来了,我有这张表:

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

我看不出与 MariaDB 文档中示例的区别 on this webpage .检查中的 SELECT 语句本身运行良好,因此问题一定出在其他地方,但我没有看到。

无论如何,这是完整的服务器信息:

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
--------------

最佳答案

我想引用您链接页面顶部的内容:

This page is part of the book SQL-99 Complete, Really, by Peter Gulutzan & Trudy Pelzer. The authors have graciously allowed us to reproduce the contents of the book here. Because the book is about the SQL-99 standard, the contents of this and other pages in the book may not directly apply to MariaDB. Use the navigation bar to navigate the book.

MariaDB 特定的文档是不同的。您可以找到受支持的完整列表 CREATE statements在 mariadb 的网站上。此列表不包括 CREATE ASSERTION,因此 MariaDB 不支持此功能,因此出现错误消息:

关于各种 CREATE 语句的文章

  • CREATE DATABASE 创建数据库
  • 创建事件创建和安排新事件1
  • 创建函数创建一个存储函数
  • 创建函数 UDF创建用户定义的函数
  • 创建索引在一个或多个列上创建索引
  • 创建程序创建存储过程
  • 创建角色添加新角色
  • 创建服务器定义服务器5
  • 创建表创建一个新表
  • 创建表空间CREATE TABLESPACE 在 MariaDB 中不可用
  • 创建触发器创建一个新触发器
  • 创建用户创建新的 MariaDB 帐户
  • 创建 View 创建或替换 View

关于mysql - 尝试创建断言时无法解释的 mysql 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com