问题标签 [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.

0 投票
1 回答
530 浏览

mysql - 使用联接或顺序哪个更新更快?

这个问题是我之前的问题的顺序,要求在删除一行时更新同一张表。

我可以使用存储过程而不是触发器或嵌套查询 来编写两个解决方案。

两者都使用辅助函数my_signal(msg)

Employee表中删除员工的存储过程。

  • 拳头解决方案:使用UPDATE表中的行,无需连接操作
  • 第二种解决方案:正如我在上一个问题中建议的那样,使用INNER JOIN

我在这里读到,使用 join 对于 Efficient SELECT 是有效的。但是我的问题只包括一个表,我觉得我的解决方案(第一个)比第二个更有效,因为 join 会比较消耗内存。

Employee table如果足够大,请建议我哪个更好,更有效。哪个更适合我?原因

编辑: 我检查了只包含 7 行的小表,两种解决方案都需要相同的时间。

我知道 SQL 函数的行为是不确定的,因为表启发式。哪个选择更好?如果您有一些想法,可以进一步优化查询。

0 投票
1 回答
2929 浏览

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 现在还没有其他选择。

0 投票
2 回答
249 浏览

mysql - 如何在 MySQL 5.0 语句中使用 like 子句

我在 MySQL 5.0 中使用 'like' 子句时遇到问题 我在 MySQL 5.0 中编写了一个存储过程并从我的 Java 程序调用存储过程 下面在 select 语句中的存储过程 我想为 like 子句获取参数部门名称的值请帮忙

0 投票
2 回答
742 浏览

java - 如何使用 Install4j 打包 MySQL Install4j 是否具有创建安装程序的功能,也可以安装 MYSQL

Install4J 是否具有安装 MySQL 5.0 和我创建的数据库的功能,用于我在 Netbeans IDE 中开发的 Windows 上的 Java 应用程序最终我需要的是我的 Java 应用程序的 .exe,它位于 Netbeans IDE 和安装我的安装程序中应用到客户端系统和 MySQl 中创建的数据库。请帮忙

0 投票
3 回答
1859 浏览

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)

使用错误号搜索有些困难。请帮助我了解为什么会发生此错误。

0 投票
1 回答
58 浏览

mysql - 合并表中的删除太慢

我有一个 chat_log 表,它存储发送者和接收者的数据。结构如下

当前实现:每个月我都会创建一个 MyIsam 表,比如 JAN 存储 1 月份完成的所有聊天,FEB 存储 2 月份完成的所有聊天,依此类推。

说在 3 月 31 日有一个合并表chat_log,其中包含多个聊天表 JAN、FEB、MAR

4 月 1 日,我需要将定义更改为 2 月 3 月和 4 月。

合并表在这里效果最好。问题是当用户删除其条目时,我需要从表中删除该条目,因为表是合并 myisam,这发生得非常缓慢。

所以我该怎么做:

  1. 我可能会选择 innodb,它会更快,但 id 不支持合并表,因此每次更改定义都会很困难。
  2. 在合并时使用分区不会有太大帮助。
0 投票
2 回答
931 浏览

tomcat - 在java中使用mysql执行Preparedstatment时出错?

我只是从一个 html 页面获取两个值并告诉我的 servlet 创建一个表并将表单值放在我的数据库中的表中。我收到以下错误

错误:

我正在关注这个http://www.mkyong.com/jdbc/jdbc-preparestatement-example-select-list-of-the-records/

0 投票
1 回答
106 浏览

mysql-5.0 - 我可以在 DB 中看到乌尔都语,但在主页上看不到

我有乌尔都语非营利新闻网站。我在 MySQL4.0 中有旧数据库,但现在服务器已经更新了数据库,现在是 MySQL5.0。我的网站在早期的数据库中运行良好,但现在文本显示为问号。但我可以在 phpMyAdmin 中看到带有乌尔都语文本的新闻。有人可以告诉我有什么问题吗?

谢谢,卡兹米

0 投票
2 回答
504 浏览

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 [默认]

0 投票
1 回答
51 浏览

mysql - 在 MySQL 中将 SET 更改为 ENUM?

我有一个SET字段达到了 64 的限制(几年前我在设计数据库时是个新手)。现在我无法向我的字段添加更多SET值。department我正在考虑将其更改为ENUM类型。我能做些什么?

MySQL 5.0.95