8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何在 MySQL 中创建序列?

Kjartan 2月前

115 0

我正在尝试在 MySQL 中创建一个序列(我对 SQL 整体上非常陌生)。我正在使用以下代码,但它导致错误:CREATE SEQUENCE ORDID INCREMENT BY 1 START WITH 622;ORDID 指的是...

我正在尝试在 MySQL 中创建一个序列(我对 SQL 整体来说非常陌生)。我正在使用以下代码,但它会导致错误:

CREATE SEQUENCE ORDID INCREMENT BY 1 START WITH 622;

ORDID 指的是我正在使用的表中的一个字段。如何正确创建序列?

编辑:

据称,MySQL 不使用序列。我现在正在使用以下代码,但这也会导致错误。我该如何修复它们?

CREATE TABLE ORD (
ORDID NUMERIC(4) NOT NULL AUTO_INCREMENT START WITH 622,
//Rest of table code

编辑:

我想我找到了解决办法。对于 phpMyAdmin(我正在使用),您可以使用以下代码。

ALTER TABLE ORD AUTO_INCREMENT = 622;

我不知道它为什么喜欢这样,但如果其他人需要帮助,那么你可以去这里。:)

帖子版权声明 1、本帖标题:如何在 MySQL 中创建序列?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Kjartan在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 无需任何程序即可从头创建测试数据

    感谢 James Hopbourn 的回答,这里有一些使用该想法的方法。

    这可能是生成具有固定索引(以固定值开始和结束)的测试数据的一个很好的起点。

    为了至少以某种方式提供一个完整的示例,我只添加了随机的 X 和 Y 值:

    -- CREATE TABLE RawData AS
    SELECT 
        Val AS ID,
        floor(RAND() * 1000) AS X,
        floor(RAND() * 1000) AS Y
    FROM 
    (
        WITH RECURSIVE seq AS 
        (
            SELECT 
                1000 AS v 
            UNION ALL 
            SELECT 
                v + 1 
            FROM 
                seq 
            WHERE v < 1030
        ) 
        SELECT v as Val FROM seq 
    ) AS ValsFrom1000to1030;
    

    它将生成如下测试数据:

    +------+------+------+
    |   ID |    X |    Y |
    +------+------+------+
    | 1000 |  157 |  640 |
    ...
    | 1030 |  718 |  902 |
    +------+------+------+
    

    解释:

    • p5

    • p6

    • p7

    • p8

    请查看 MySql/MariaDB CREATE TABLE ... AS 文档以了解详细的列定义,例如键、生成的索引和类型。

    已在 MariaDB 11.3.2 上测试

返回
作者最近主题: