什么样的SQL语句可以用来准备语句?

什么样的SQL语句可以用来准备语句?

数据库 2024-02-05 14:20:05 1年以前

实际上,不可能准备所有的 SQL 语句,因为 MySQL 只允许准备以下几种 SQL 语句:

SELECT 语句

示例

mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERECompanyname = ?';Query OK, 0 rows affected (0.09 sec)Statement preparedmysql> SET @A = 'Singla Group.';Query OK, 0 rows affected (0.00 sec)mysql> EXECUTE stmt using @A;+--------------+| tender_value |+--------------+|   220.255997 |+--------------+1 row in set (0.07 sec)mysql> DEALLOCATE PREPARE stmt;Query OK, 0 rows affected (0.00 sec)

INSERT, REPLACE, UPDATE和DELETE

修改数据的语句。

示例

mysql> PREPARE stmt1 FROM 'DELETE from Tender WHERE Sr = ?';Query OK, 0 rows affected (0.00 sec)Statement preparedmysql> SET @A = 4;Query OK, 0 rows affected (0.00 sec)mysql> EXECUTE stmt1;ERROR 1210 (HY000): Unknown error 1210mysql> EXECUTE stmt1 using @A;Query OK, 1 row affected (0.08 sec)mysql> DEALLOCATE PREPARE stmt1;Query OK, 0 rows affected (0.00 sec)mysql> Select * from tender;+----+---------------+--------------+| Sr | CompanyName   | Tender_value |+----+---------------+--------------+| 1  | Abc Corp.     |   250.369003 || 2  | Khaitan Corp. |   265.588989 || 3  | Singla group. |   220.255997 |+----+---------------+--------------+3 rows in set (0.00 sec)

CREATE TABLE 语句。

示例

mysql> PREPARE stmt3 FROM 'CREATE TABLE Student(Id INT, NameVarchar(20))';Query OK, 0 rows affected (0.00 sec)Statement preparedmysql> EXECUTE stmt3;Query OK, 0 rows affected (0.73 sec)mysql> DEALLOCATE PREPARE stmt3;Query OK, 0 rows affected (0.00 sec)

SET、DO 和许多 SHOW 语句

示例

mysql> PREPARE stmt10 FROM 'SHOW TABLES';Query OK, 0 rows affected (0.00 sec)Statement preparedmysql> EXECUTE stmt10;+-------------------+| Tables_in_query   |+-------------------+| emp               || emp123            || emp_t             || examination_btech || new_number        || student           || student_detail    || student_info      || tender            || website           |+-------------------+10 rows in set (0.00 sec)

文章版权声明:除非注明,否则均为网络转载文章,转载或复制请以超链接形式并注明出处。