gpt4 book ai didi

mysql - 无法将 sql 转换为 sqlite

转载 作者:行者123 更新时间:2023-11-29 15:50:25 26 4
gpt4 key购买 nike

此查询是针对 php 5.7 脚本进行的,不再起作用,我的提供商是 one.com,这就是他们使用的:PHP Versie:7.1.30MySQL 版本:10.3.14-MariaDB-1:10.3.14+maria~bionic

我已经来过这里很多次寻求答案了,通常我都会解决它,但是这个让我伤透了脑筋!尝试过 DB Fiddle,他们总是出现同样的错误:

Query Error: Error: SQLITE_ERROR: near "KEY": syntax error ,and,Query Error: Error: SQLITE_ERROR: near "unsigned": syntax error

CREATE TABLE IF NOT EXISTS `bo_hourly` (
`time` int(15) NOT NULL,
`strikes` int(6) NOT NULL,
`st_strikes` int(8) NOT NULL,
UNIQUE KEY `time` (`time`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `bo_stat` (
`date` date NOT NULL,
`strikes` mediumint(11) unsigned NOT NULL DEFAULT '0',
`maxdist` int(6) NOT NULL DEFAULT '0',
`mindist` int(6) NOT NULL DEFAULT '999999',
`maxstrikes` mediumint(11) unsigned NOT NULL DEFAULT '0',
`maxtime` int(15) unsigned NOT NULL DEFAULT '0',
`maxusers` int(6) NOT NULL DEFAULT '0',
`st_strikes` int(8) NOT NULL,
`st_mindist` int(6) NOT NULL DEFAULT '999999',
`st_maxdist` int(6) NOT NULL DEFAULT '0',
`st_max` int(6) NOT NULL,
`st_maxtime` int(15) NOT NULL,
KEY `time` (`date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

我知道它一定很简单,但是“ key ”和“无符号”附近的东西似乎是错误的,如果有人可以帮助我,也许我搜索得太牵强了......

最佳答案

我相信紧密转换所需的最小更改(请参阅注释)将产生以下代码(禁止注释以指示已添加的代码):-

CREATE TABLE IF NOT EXISTS `bo_hourly` (
`time` int(15) NOT NULL,
`strikes` int(6) NOT NULL,
`st_strikes` int(8) NOT NULL,
UNIQUE /*KEY `time`*/ (`time`)
) /*ENGINE=MyISAM DEFAULT CHARSET=latin1*/;

CREATE TABLE IF NOT EXISTS `bo_stat` (
`date` date NOT NULL,
`strikes` mediumint(11) /*unsigned*/ NOT NULL DEFAULT '0',
`maxdist` int(6) NOT NULL DEFAULT '0',
`mindist` int(6) NOT NULL DEFAULT '999999',
`maxstrikes` mediumint(11) /*unsigned*/ NOT NULL DEFAULT '0',
`maxtime` int(15) /*unsigned*/ NOT NULL DEFAULT '0',
`maxusers` int(6) NOT NULL DEFAULT '0',
`st_strikes` int(8) NOT NULL,
`st_mindist` int(6) NOT NULL DEFAULT '999999',
`st_maxdist` int(6) NOT NULL DEFAULT '0',
`st_max` int(6) NOT NULL,
`st_maxtime` int(15) NOT NULL/*,
KEY `time` (`date`)
*/)/* ENGINE=MyISAM DEFAULT CHARSET=utf8*/;

-- ADDED
CREATE INDEX IF NOT EXISTS `time` ON `bo_stat`(`date`);

基本上

  • SQlite 没有 KEY 关键字,而是隐含索引(例如使用 UNIQUE)或显式定义(根据添加的行)。

  • unsigned 成为语法错误,因为括号中的值存在细微差别,它期望它们是列类型的最后一个值(例如,mediumint unsigned 实际上可以工作)。因此,未签名已被注释掉。

  • ENGINE=MyISAM 不是 SQLite 中的有效子句(已注释掉)

  • DEFAULT CHARSET 不是 SQLite 中受支持的子句(已注释掉)。
  • 最后一个逗号表示附加子句,已被注释掉。
  • 最后的右括号尚未被注释掉

关于mysql - 无法将 sql 转换为 sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793788/

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