为 MySQL 找到 4379 篇文章

我们如何使用 INFORMATION_SCHEMA 来获取特定数据库中有关触发器的详细信息?

Rishi Raj
更新于 2020 年 6 月 22 日 12:06:26

100 次浏览

可以通过以下语句完成:
mysql > select * from information_schema.triggers where  -> information_schema.triggers.trigger_schema like '%query%'\G* *************************** 第 1 行 ***************************        TRIGGER_CATALOG: def          TRIGGER_SCHEMA: query            TRIGGER_NAME: trigger_before_delete_sample       EVENT_MANIPULATION: DELETE     EVENT_OBJECT_CATALOG: def     EVENT_OBJECT_SCHEMA: query         EVENT_OBJECT_TABLE: sample            ACTION_ORDER: 1        ACTION_CONDITION: NULL        ACTION_STATEMENT: BEGIN SET @count ... 更多信息

我们如何获取触发器的元数据?

Sharon Christine
更新于 2020 年 6 月 22 日 11:46:12

145 次浏览

借助 INFORMATION_SCHEMA 数据库,可以实现此操作。以下语句将为我们提供触发器的元数据 - mysql> Select trigger_schema, trigger_name, action_statement     -> from information_schema.triggers\G *************************** 1. 行 ***************************   trigger_schema: query     trigger_name: trigger_before_delete_sample action_statement: BEGIN SET @count = if (@count IS NULL, 1, (@count+1)); INSERT INTO sample_rowaffected values (@count); END *************************** 2. 行 ***************************   trigger_schema: query     trigger_name: before_inser_studentage action_statement: IF NEW.age < 0 THEN SET NEW.age = 0; END IF *************************** 3. 行 ***************************   trigger_schema: sys     trigger_name: sys_config_insert_set_user action_statement: BEGIN IF @sys.ignore_sys_config_triggers != true AND NEW.set_by ... 了解更多信息

我们如何查看数据库中所有触发器的列表?

Manikanth Mani
更新于 2020 年 6 月 22 日 11:52:21

179 次浏览

借助 SHOW TRIGGERS 语句,我们可以列出特定数据库中的所有触发器。可以借助以下示例加以说明——示例 mysql> Show Triggers\G *************************** 1. 行 ***************************   触发器:trigger_before_delete_sample     事件:DELETE     表:sample 语句:BEGIN SET @count = if (@count IS NULL, 1, (@count+1)); INSERT INTO sample_rowaffected values (@count); END   时序:BEFORE   创建时间:2017-11-21 12:31:58.70 sql_mode:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERR OR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION               定义者:root@localhost character_set_client:cp850 collation_connection:cp850_general_ci   数据库排序规则:latin1_swedish_ci *************************** 2. ... 了解更多信息

我们如何获取 MySQL 结果集中某个列的摘要输出?

Anvi Jain
更新于 2020 年 6 月 22 日 11:46:57

507 次浏览

我们可以通过使用 “WITH ROLLUP” 修饰符来获取 MySQL 结果集中某个列的摘要输出。此修饰符与 GROUP BY CLAUSE 一起使用。它为摘要输出提供其他行,代表更高级别的摘要操作。示例 在此示例中,WITH ROLLUP 修饰符在摘要输出中提供了额外行中的总成本值。 mysql> Select Item_name, SUM(Cost) AS Total_cost from Item_list GROUP BY Item_name WITH ROLLUP; +-----------+------------+ | Item_name | Total_cost | +-----------+------------+ | Notebook  | 45.00      | | Pen       | 31.70      | | Pencilbox | 125.20     | | NULL      | 201.90     | +-----------+------------+ 4 行记录(0.00 秒)

MySQL 结果集中“空集”的含义是什么?

Nitya Raut
更新于 2020 年 6 月 22 日 11:53:16

5K+ 次浏览

如果 MySQL 查询的结果集中有“空集”,则表示 MySQL 没有返回任何行,也没有在查询中返回任何错误。我们可以借助以下示例来理解这一点—— mysql> Select * from Student_info WHERE Name = 'ABCD'; 空集(0.00 秒) 我们可以看到输出中显示的空集和执行时间。这意味着查询正确,但 MySQL 表中没有名称“ABCD”。

使用 MySQL 触发器的优点、缺点和限制是什么?

Fendadis John
更新于 2020 年 6 月 22 日 11:50:53

4K+ 次浏览

我们必须了解使用 MySQL 触发器的优点、缺点和限制,才能有效地使用它。优点使用 MySQL 触发器的优点如下 −数据完整性 −借助 MySQL 触发器,我们可以检查表中的数据完整性。换句话说,MySQL 触发器是检查数据完整性的替代方法。用于捕获错误 −MySQL 触发器可以在数据库层捕获业务逻辑中的错误。运行计划任务的替代方法 −实际上,通过使用 MySQL 触发器,我们不必等待运行计划的任务,因为 ... 阅读更多信息

我们如何在 MySQL 语句处理途中丢弃该语句?

Prabhas
更新于 2020-06-22 11:51:28

查看 69 次

借助 \c 命令,我们可以丢弃 MySQL 语句处理途中的该语句。考虑以下示例,在该示例中,如果想在语句处理途中丢弃它,则对它使用 \c 选项 −mysql> Select *    -> from\c mysql>以上查询显示,使用 \c 选项之后,MySQL 丢弃了该语句并返回提示符。

如何在不引用任何表的情况下使用 SELECT 在 MySQL 中计算表达式?

Govinda Sai
更新于 2020-06-22 11:49:51

查看 83 次

借助以下 MySQL 语句,我们可以使用 SELECT 计算表达式 −SELECT expression;以上语句没有引用任何表。以下是一些示例 −mysql> Select 10 DIV 5; +----------+ | 10 DIV 5 | +----------+ |        2 | +----------+ 1 行记录组 (0.06 秒) mysql> Select 10*5; +------+ | 10*5 | +------+ |   50 | +------+ 1 行记录组 (0.00 秒) mysql> Set @var1 = 100, @var2 = 200; 查询正常,0 行受影响 (0.00 秒) mysql> Select @Var1+@Var2; +-------------+ | @Var1+@Var2 | +-------------+ |         300 | +-------------+ 1 行记录组 (0.00 秒)

‘FOR EACH ROW’ 在 MySQL 触发器中如何工作?

Samual Sam
更新于 2020-06-22 11:54:52

5K+ 次浏览

实际上,‘FOR EACH ROW’ 表示对于得到更新或删除的每个匹配行。换句话说,我们可以说触发器不会应用到每一行,它只是说为每个受影响表行执行触发器主体。我们可以通过以下示例来说明这一点 −示例在此示例中,我们创建 Sample 和 Sample_rowaffected 两个表,如下所示 −mysql> Create table Sample(id int, value varchar(20)); 查询正常,0 行受影响 (0.47 秒) mysql> Insert into Sample(id, value) values(100, 'same'), (101, 'Different'), (500, 'excellent'), (501, 'temporary'); 查询正常,4 行受影响 (0.04 秒) ... 阅读更多信息

编写 MySQL 语句时使用 ‘c’ 选项有什么作用?

Ramu Prasad
更新于 2020-06-22 11:40:20

查看 402 次

'\c' 选项表示 ‘clear’,用于清除当前输入。假设如果我们不想执行正在输入的命令,那么可以使用清除 \c 选项,它清除当前输入。例如,\c 选项的使用如下 −mysql> Select *     -> from\c在以上示例中,当我们在语句中使用 \c 时,MySQL 清除了当前输入并返回到 MySQL 提示符以接受其他语句。

广告