问题标签 [mysql-5.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 使用联接或顺序哪个更新更快?
这个问题是我之前的问题的顺序,要求在删除一行时更新同一张表。
我可以使用存储过程而不是触发器或嵌套查询 来编写两个解决方案。
两者都使用辅助函数my_signal(msg)。
从Employee
表中删除员工的存储过程。
- 拳头解决方案:使用
UPDATE
表中的行,无需连接操作:
- 第二种解决方案:正如我在上一个问题中建议的那样,使用
INNER JOIN
我在这里读到,使用 join 对于 Efficient SELECT 是有效的。但是我的问题只包括一个表,我觉得我的解决方案(第一个)比第二个更有效,因为 join 会比较消耗内存。
Employee table
如果足够大,请建议我哪个更好,更有效。哪个更适合我?原因
编辑: 我检查了只包含 7 行的小表,两种解决方案都需要相同的时间。
我知道 SQL 函数的行为是不确定的,因为表启发式。哪个选择更好?如果您有一些想法,可以进一步优化查询。
mysql - 如何在 MYSQL 中编写可以从触发器和存储函数调用的信号函数?
在我的数据库中,我有一个表:Employee
通过递归关联,员工可以成为其他员工的老板。
表说明:
员工表的当前状态是:
以下是表中各行之间的层次关系:
我想对 INSERT 施加以下约束:
- 员工不能对自己进行 BOSS。这仅适用于 OWNER。因此查询之类的。
INSERT INTO Employee VALUES ("8", "H", "BOSS", "8");
应该拒绝。 OWNER
可以插入 新的新的。
因为我正在使用 5.5 之前的 MYSQL 版本(不支持信号)。
所以我使用了一个my_singal()一个存储过程。
写成这样:
并应用约束,我written a Trigger
知道了check constraints are not yet implemented in MySQL
!
它已成功编译并加载到数据库中。但是当我尝试插入时:
- SQL 准备语句(PREPARE、EXECUTE、DEALLOCATE PREPARE)可用于存储过程,但不能用于存储函数或触发器。因此,存储函数和触发器不能使用动态 SQL(您将语句构造为字符串然后执行它们)。
经过一番努力,我可以编写另一个触发器,如下所示。按照我的要求工作正常。
因为我已经my_signal()
在许多过程中使用,我需要编写许多新的存储函数和触发器,我需要my_signal()
再次使用函数。
It would also good for easy manipulation if sometime MYSQL version upgraded to 5.5(+)
.
有人可以建议我以其他方式编写 my_signal() 来打印自定义错误消息吗?
我尝试如下:
分隔符 $$
创建过程my_signal
(in_errortext VARCHAR(255))
声明 sql varchar(512);
开始
SET sql=CONCAT('UPDATE', in_errortext, '
SET x=1');
更新 sql 设置 x =1;
结束$$
但没用:(。
请帮助我。我将非常感激!
我特别不擅长MYSQL @Stored Procedures。
如果您想在此处尝试您的系统,您可以快速找到构建此数据库的命令。
编辑 ~ MySQL 解释器充当编译器!
我们不能从触发器和存储函数中调用动态 SQL语句。
为了在所有存储的例程中保持相同的接口 my_signal() 我修改了 my_signal(); 添加Static SQL
语句Dynamic SQL
并确保它不会从触发器执行。我认为应该允许because MySQL is an interpreter not a compiler
。
新的 my_signal()
新触发器
希望我尝试插入:
哎呀!它的行为类似于编译器,而不是解释器。不是吗?
编辑:回答
幸运的是,我在编辑问题时得到了RolandoMySQLDBA的回答。
答案在这里
最后:我可以理解我们不能在触发器中执行动态 SQL。我可能不得不求助于对 my_signal() 进行编码。MySQL 现在还没有其他选择。
mysql - 如何在 MySQL 5.0 语句中使用 like 子句
我在 MySQL 5.0 中使用 'like' 子句时遇到问题 我在 MySQL 5.0 中编写了一个存储过程并从我的 Java 程序调用存储过程 下面在 select 语句中的存储过程 我想为 like 子句获取参数部门名称的值请帮忙
java - 如何使用 Install4j 打包 MySQL Install4j 是否具有创建安装程序的功能,也可以安装 MYSQL
Install4J 是否具有安装 MySQL 5.0 和我创建的数据库的功能,用于我在 Netbeans IDE 中开发的 Windows 上的 Java 应用程序最终我需要的是我的 Java 应用程序的 .exe,它位于 Netbeans IDE 和安装我的安装程序中应用到客户端系统和 MySQl 中创建的数据库。请帮忙
mysql - 错误 1025 (HY000): 重命名 .. 时出错 (errno: -1)
我在 CentOS 5.7(64 位)中使用 Oracle MySQL 5.0.88。当我尝试为表创建索引时意味着它显示
mysql> 创建索引
activity_type_id
(activity_log
)activity_type_id
; 错误 1025 (HY000):将“./sample_production/activity_log”重命名为“./sample_production/#sql2-665c-7”时出错(错误号:-1)
使用错误号搜索有些困难。请帮助我了解为什么会发生此错误。
mysql - 合并表中的删除太慢
我有一个 chat_log 表,它存储发送者和接收者的数据。结构如下
当前实现:每个月我都会创建一个 MyIsam 表,比如 JAN 存储 1 月份完成的所有聊天,FEB 存储 2 月份完成的所有聊天,依此类推。
说在 3 月 31 日有一个合并表chat_log
,其中包含多个聊天表 JAN、FEB、MAR
4 月 1 日,我需要将定义更改为 2 月 3 月和 4 月。
合并表在这里效果最好。问题是当用户删除其条目时,我需要从表中删除该条目,因为表是合并 myisam,这发生得非常缓慢。
所以我该怎么做:
- 我可能会选择 innodb,它会更快,但 id 不支持合并表,因此每次更改定义都会很困难。
- 在合并时使用分区不会有太大帮助。
tomcat - 在java中使用mysql执行Preparedstatment时出错?
我只是从一个 html 页面获取两个值并告诉我的 servlet 创建一个表并将表单值放在我的数据库中的表中。我收到以下错误
错误:
我正在关注这个http://www.mkyong.com/jdbc/jdbc-preparestatement-example-select-list-of-the-records/
mysql-5.0 - 我可以在 DB 中看到乌尔都语,但在主页上看不到
我有乌尔都语非营利新闻网站。我在 MySQL4.0 中有旧数据库,但现在服务器已经更新了数据库,现在是 MySQL5.0。我的网站在早期的数据库中运行良好,但现在文本显示为问号。但我可以在 phpMyAdmin 中看到带有乌尔都语文本的新闻。有人可以告诉我有什么问题吗?
谢谢,卡兹米
java - play2.0 + java + mysql5.0 错误太多
我仍在尝试学习如何使用搜索操作和数据库创建搜索。但是我有太多错误:
[RuntimeException: No JPA EntityManagerFactory configured for name [default]] 当我修复
application.conf
文件时出现此错误:*db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/search"
db.default.user=root
db.default.password=123456
db.default.jndiName=默认DS*
- PersistenceException:当我将其插入时,没有名为 defaultPersistenceUnit 的 EntityManager 的持久性提供程序:application.conf
我搜索了整个http://stackoverflow.com,但找不到任何答案,而且我的应用程序仍然无法运行。帮我修一下。感谢帮助 :)
你们可以在这里看到我的代码: 错误:RuntimeException:没有为名称配置 JPA EntityManagerFactory [默认]
mysql - 在 MySQL 中将 SET 更改为 ENUM?
我有一个SET
字段达到了 64 的限制(几年前我在设计数据库时是个新手)。现在我无法向我的字段添加更多SET
值。department
我正在考虑将其更改为ENUM
类型。我能做些什么?
MySQL 5.0.95