关于Drupal中使用hook_schema建立数据库报错PDOException: SQLSTATE[42000]的解决办法

报错信息如下:PDOException: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes: CREATE TABLE {start_zero_order} ( `id` INT unsigned NOT NULL auto_increment COMMENT ‘The order id.‘, `username` VARCHAR(64) NOT NULL COMMENT ‘××ב, `order` VARCHAR(4096) NULL DEFAULT NULL COMMENT ‘×××.‘, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), INDEX `order` (`order`) ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT ‘the taxi order.‘; Array ( ) 在 db_create_table()

这时要先卸载模块,然后修改数据长度,具体而言,我的数据库支持的key长度是3072,而不同编码格式每个字符所占长度是不同的:

latin1 = 1 byte = 1 character 
uft8 = 3 byte = 1 character 
gbk = 2 byte = 1 character

因此上面的sql语句光order字段就需要长度4096*3=12288 bytes,所以报错了。改成512,重新安装模块问题解决。

时间: 2024-12-24 03:17:45

关于Drupal中使用hook_schema建立数据库报错PDOException: SQLSTATE[42000]的解决办法的相关文章

dbstart和dbshut启动、关闭数据库报错ORACLE_HOME_LISTNER is not SET解决办法

dbstart启动数据库报错,如下: [[email protected] ~]$ dbstartORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net ListenerUsage: /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart ORACLE_HOME dbshut关闭数据库报错,如下: [[email protected] ~]$ dbshutORACLE_HOME

Transformer中引用iqd作为数据源报错TR1907的一种解决办法

好久没和transform接触了,初次接触就给我送了个大礼,在选择好iqd文件执行最后一步导入的时候,要求我对数据源输入用户名密码,我连续输入了三次用户名和密码,在我十分肯定用户名和密码没错的情况下,它还是报错了,具体错误如下图 接下来,当然首先要检查一下iqd文件,再确保了iqd文件没有问题的情况下,我多多少少有些迷茫,于是就再看看报错的详情,点开Details看到下面的文字 需要修改D:\Program Files (x86)\ibm\cognos\c10\CS7Gateways\bin目录

WAS Server 启动报错无法找到秘钥解决办法

报错日志: [7/18/17 18:04:24:582 CST] 0000000a ORBRas        E com.ibm.ws.orbimpl.transport.WSTransport createServerSocket P=254162:O=0:CT ORBX0390E: Cannot create listener thread. Exception=[ org.omg.CORBA.INTERNAL: CAUGHT_EXCEPTION_WHILE_CONFIGURING_SSL

SQLITE报错database is locked的解决办法

用firedac连接SQLITE数据库,空间tdbedit绑定字段name,如下语句修改其值时报错. procedure TForm1.Button3Click(Sender: TObject);begin fdquery.Edit; fdquery.FieldByName('name').AsString:='test2'; fdquery.post;   //执行到这里报错 [FireDAC][Phys][SQLite] ERROR: database is locked. 换成refres

http://localhost/ 或 http://127.0.0.1/ 报错:HTTP 404 的解决办法

一些初次接触使用 Eclipse 工具来开发 JAVA Web 工程的开发人员,可能会对 Eclipse 和 Tomcat 的绑定产生一个疑惑. 那就是 在修改了 Tomcat 的8080端口为80后,返回到 Tomcat 安装目录的子目录 bin 下,找到并双击 startup.bat,这时的 Tomcat 在黑窗口中正常启动.然后去打开本地浏览器在地址栏输入 http://localhost/ 或 http://127.0.0.1/ 也能够正常跳转到 Tomcat 的本地管理首页. 但在把本

python 报错 Using deprecated class PySimpleApp 解决办法

今天在做python 脚本练习的时候,因为是复制网上代码来学习,运行脚本时遇到 python 提示如下这一行报错代码: wxPyDeprecationWarning: Using deprecated class PySimpleApp. 解决方法也很简单,就是把倒数以下几行代码中的把wx.PySimpleApp() 替换为 app = wx.App() 或 wx.App(False) 即可. if __name__ == '__main__':        app = wx.App()   

SVN报错:locked; try performing 解决办法。

问题源 用Eclipse的svn插件更新文件时,直接复制服务器上css文件新增的一条样式到本地,然后保存后发生冲突,尝试标记合并冲突后发生如下异常: Some of selected resources were not committed. svn: Working copy 'd:\***\css' locked; try performing 'cleanup' 且再次同步服务器更新出现该空文件夹无法操作. 尝试team菜单下的clean up后clean up也发生异常 *** Clea

Spring Boot连接MySQL报错“Internal Server Error”的解决办法

报错信息如下: {timestamp: "2018-06-14T03:48:23.436+0000", status: 500, error: "Internal Server Error",-} error : "Internal Server Error" message : "Could not open JDBC Connection for transaction; nested exception is java.sql.S

git clone 报错:fatal: index-pack failed 解决办法

[email protected] MINGW64 /d/Users/xxx/venv/program (master) $ git clone https://github.com/XXX/program. git Cloning into 'program'... remote: Enumerating objects: 1417, done. remote: Counting objects: 100% (1417/1417), done. remote: Compressing obje