找到 4219 篇文章,关于 MySQLi
966 次浏览
假设在触发器执行期间发生错误,则 MySQL 可以按如下方式处理:如果 BEFORE 触发器失败,则不执行对应行的操作。BEFORE 触发器由尝试插入或修改行激活,无论该尝试随后是否成功。AFTER 触发器仅在任何 BEFORE 触发器和行操作成功执行后才执行。BEFORE 或 AFTER 触发器中的错误会导致导致触发器调用的整个语句失败。对于事务表,语句失败应导致回滚语句执行的所有更改。 ... 阅读更多
392 次浏览
众所周知,MySQL 支持外键以实现引用完整性,但它不支持 CHECK 约束。但是,我们可以通过使用触发器来模拟它们。这可以通过以下示例来说明:示例假设我们有一个名为“car”的表,该表可以具有固定的语法注册号,例如两个字母、一个破折号、三个数字、一个破折号、两个字母,如下所示:mysql> Create table car (number char(9)); Query OK, 0 rows affected (0.32 sec) mysql> Insert into car values('AB-235-YZ'); Query OK, 1 row affected (0.10 sec)以上值是有效值,但是什么 ... 阅读更多
3K+ 次浏览
实际上,MySQL SIGNAL 语句是一种错误处理机制,用于处理意外事件并在需要时从应用程序优雅退出。基本上,它向处理程序提供错误信息。其基本语法如下:SIGNAL SQLSTATE | condition_value [SET signal_information_item = value_1, [, signal_information_item] = value_2, 等;]这里,SIGNAL 关键字是 SQLSTATE 值或由 DECLARE CONDITION 语句声明的条件名称。SIGNAL 语句必须始终指定 SQLSTATE 值或使用 SQLSTATE 值定义的命名条件。SIGNAL 语句的 SQLSTATE 值由五个字符组成 ... 阅读更多
184 次浏览
我们可以使用 CHANGE 语句以及 ALTER 语句更改 MySQL 表中特定现有列的名称。其语法如下:语法ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;这里,table_name 是我们要从中删除列的表的名称。Old_column_name 是要更改的列的名称。new_column_name 是要赋予旧列的列的名称。示例在此示例中,我们将列“id”的名称更改为表“student_info”中的“studentid”,如下所示:mysql> Select * from Student_info; +------+---------+------------+------------+ | id | ... 阅读更多
172 次浏览
我们可以使用 DROP 语句以及 ALTER 语句从 MySQL 表中删除特定现有列。其语法如下:语法ALTER TABLE table_name DROP column_name;这里,table_name 是我们要从中删除列的表的名称。Column_name 是要从表中删除的列的名称。示例在此示例中,我们正在从表“student_detail”中删除列“address”,如下所示:mysql> select * from student_detail; +-----------+-------------+----------+ | Studentid | StudentName | address | +-----------+-------------+----------+ | 100 | Gaurav | Delhi ... 阅读更多
541 次浏览
由于我们不能在 MySQL 中使用 MINUS 查询,因此我们将使用 JOIN 来模拟 MINUS 查询。这可以通过以下示例来理解:示例在此示例中,我们有两个表,即 Student_detail 和 Student_info,它们具有以下数据:mysql> Select * from Student_detail; +-----------+---------+------------+------------+ | studentid | Name | Address | Subject | +-----------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi ... 阅读更多
117 次浏览
借助 SHOW STATUS 语句,我们可以获取 MySQL 事件相关操作的计数。它可以按如下方式使用:mysql> SHOW STATUS LIKE '%event%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | Com_alter_event | 16 | | Com_create_event | 6 | | Com_drop_event | 4 | | Com_show_binlog_events | 0 | | Com_show_create_event | 0 | | Com_show_events | 4 | | Com_show_relaylog_events | 0 | +--------------------------+-------+ 7 rows in set (0.17 sec)
50 次浏览
以下是 MYSQL 中提供事件相关操作计数的状态变量:Com_create_event 它为我们提供了自上次服务器重启以来执行的 CREATE EVENT 语句的数量。Com_alter_event - 它为我们提供了自上次服务器重启以来执行的 ALTER EVENT 语句的数量。Com_drop_event - 它为我们提供了自上次服务器重启以来执行的 DROP EVENT 语句的数量。Com_show_create_event - 它为我们提供了自上次服务器重启以来执行的 SHOW CREATE EVENT 语句的数量。Com_show_events - 它为我们提供了自上次服务器重启以来执行的 SHOW EVENTS 语句的数量。阅读更多
169 次浏览
这可以通过 INFORMATION_SCHEMA 数据库来完成。以下语句将为我们提供事件的元数据:mysql> SELECT * from INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME LIKE '%event%' A ND EVENT_SCHEMA = 'query'\G *************************** 1. row *************************** EVENT_CATALOG: def EVENT_SCHEMA: query EVENT_NAME: testing_event6 DEFINER: root@localhost TIME_ZONE: SYSTEM EVENT_BODY: SQL EVENT_DEFINITION: INSERT INTO event_message(message, generated_at) values('EVENT ALTERED', NOW()) EVENT_TYPE: ONE TIME EXECUTE_AT: 2017-11-22 20:03:52 ... 阅读更多
213 次浏览
它也可以通过 ALTER EVENT 语句来完成。我们需要结合数据库名称和事件名称以及 RENAME 关键字。为了说明这一点,我们以下面的例子为例,我们将名为“hello_renamed”的事件从“query”数据库移动到“tutorial”数据库:示例mysql> ALTER EVENT query.hello_renamed RENAME to tutorials.hello_renamed; Query OK, 0 rows affected (0.00 sec)为了确认事件已移动到“tutorials”数据库,我们可以尝试使用旧名称删除该事件,MySQL 将抛出如下错误:mysql> DROP event hello_renamed; ERROR 1539 (HY000): Unknown ... 阅读更多