mysql - Web2py:如何调用创建表的函数

标签 mysql web2py

我正在从 sqlite 迁移到 mysql,并且需要在数据库中的列上创建索引。令人烦恼的是,mySQL 没有 CREATE INDEX IF NOT EXISTS 功能。所以我想知道是否可以在 web2py 创建表本身时创建一个新索引,而不是任何其他时间。但是我应该在代码中的哪里放置一个仅在 web2py 调用“创建表”时调用的例程?

最佳答案

web2py API 不包含确定给定表是否刚刚作为当前请求的一部分创建的方法(如果打开迁移,则在第一个请求时创建表,否则假设表已存在)。当通过 web2py 迁移机制在数据库中创建表时,会在应用程序的/databases 文件夹中创建一个 *.table 文件。因此,要确定表是否刚刚创建,您必须确定在调用 db.define_table 之前不存在 *.table 文件,并且 *.表文件确实存在。您可能不想对每个请求都执行此操作,因此最好在应用程序外部简单地处理索引创建。

更好的方法可能是手动生成 SQL 来检查索引是否存在,但同样,您希望在生产中的每个请求上避免这种情况。

请注意,已经讨论过向 DAL 添加索引创建功能,但目前还没有。

关于mysql - Web2py:如何调用创建表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36602374/

相关文章:

MySQL Workbench 超出十进制数的范围值

Python web2py 打印到屏幕

python - 有没有正确的方法让 web2py 使用 Python3 而不是 Python2?

mysql - 如何在驻留在 2 个不同服务器上的 2 个不同数据库中的 2 个不同表上编写 MySQL 查询?

php - 创建内部联接以创建正确的输出

mysql - MySQL 中带有内部查询的 like 运算符不起作用

Mysql结果问题

python - 如何在 Web2py 中重新使用 Auth 进行注册、身份验证为 Rest Api

web2py - 如何关闭Web2py票务系统?

python - 使用 web2py 流式传输 couchdb 附件