MySQL Administrator's Bible- P7
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
MySQL Administrators Bible- P7 Stored Routines, Triggers, and Events 7continuedWhether or not a stored routine is deterministic is important due to binary logging. A deterministicstored routine will replicate without a problem; however, a stored routine that is not deterministicmay have problems replicating. If binary logging is set as statement-based (see Chapter 16), thebinary log contains the statements that change data, so they can be replayed during an incrementalrestore or during replication. A stored routine that is not deterministic may have a different outputgiven the same input, which means that an incremental restore or slave will not have data thatmatches the original data.Be very careful when using a stored routine that is not deterministic, because statement-basedbinary logging may not be adequate to store the data changes. If data integrity is a concern, userow-based binary logging or a deterministic stored routine instead.Unfortunately, at the time of this writing, the DETERMINISTIC and NOT DETERMINISTIC optionsserve only as comments, and are not verified by mysqld. There are no warnings or errors if anon-deterministic routine is set as DETERMINISTIC.MySQL will throw an error and refuse to create a stored function if binary logging of that functionmay be unsafe:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, orREADS SQL DATA in its declaration and binary logging is enabled(you *might* want to use the less safe log_bin_trust_function_creators variable)The best way to fix this problem is to declare the function to be DETERMINISTIC, NO SQL, orREADS DATA. The next best way is to have a user with the SUPER privilege define the function.Turning binary logging off is another way to fix this issue, though it may not be possible. Settinglog_bin_trust_function_creators to 1 will also fix this issue, though it is less safe becauseyou may end up attempting to replicate a function that is not safe for replication. SQL usage The remaining option is what SQL statements the stored routine uses. These values are for informational purposes only, and do not affect the way mysqld handles the stored routine. The possible values are: ■ MODIFIES SQL DATA — The stored routine may update data (with a DELETE, INSERT, or UPDATE command, for instance). ■ READS SQL DATA — The stored routine does not contain SQL to write data (as in MODI- FIES SQL DATA) but does contain SQL that reads data (that is, SELECT statements). The store_offerings stored procedure is an example of a stored routine that qualifies as READS SQL DATA. ■ CONTAINS SQL — The stored routine does not read or write data in the database. The curr_time and increment_counter stored procedures are examples of stored routines that qualify as CONTAINS SQL. ■ NO SQL — The stored routine has no SQL statements in it. 267Part II Developing with MySQL The default is CONTAINS SQL. Any changes to the default are done manually by the user; MySQL does not check whether or not the option is correct. For example, the store_offerings stored procedure is created with the default of CONTAINS SQL even though READS SQL DATA is the correct option. Because this is for informational purposes only, there is no harm in having this option be incorrect. However, if you intend to use the information to guide decisions, make sure you set the appropriate option. Full CREATE PROCEDURE syntax The full CREATE PROCEDURE syntax is: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE p_name ([parameter[, . . . ]]) [SQL SECURITY {DEFINER | INVOKER}] [option . . . ] {statement} option is one or more of: SQL SECURITY {DEFINER | INVOKER} COMMENT ’comment string’ LANGUAGE SQL [NOT] DETERMINISTIC {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} parameter is: [IN|OUT|INOUT] name data_type Note that the CREATE ROUTINE privilege is needed in order to create a stored procedure. See Chapter 14 for more information about managing privileges. Creating a basic stored function A stored function outputs only one scalar value, so there is no such thing as an OUT parame- ter in a stored function. Therefore, the requirements for arguments to a stored function are that each input variable is named and the type defined. You must also ...
Tìm kiếm theo từ khóa liên quan:
quản trị cơ sở dữ liệu MySQL cơ bản giáo trình cơ sở dữ liệu bảo mật cơ sở dữ liệuTài liệu cùng danh mục:
-
62 trang 388 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 371 6 0 -
Bài giảng Phân tích thiết kế hệ thống thông tin: Chương 3 - Hệ điều hành Windowns XP
39 trang 318 0 0 -
Phương pháp truyền dữ liệu giữa hai điện thoại thông minh qua môi trường ánh sáng nhìn thấy
6 trang 307 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 299 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 288 1 0 -
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 279 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 276 2 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 265 0 0 -
Một số vấn đề về chuyển đổi số và ứng dụng trong doanh nghiệp
11 trang 247 0 0
Tài liệu mới:
-
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 322
4 trang 0 0 0 -
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 315
4 trang 0 0 0 -
Đề tập huấn thi THPT Quốc gia môn tiếng Anh năm 2019 - Sở GD&ĐT Bắc Ninh - Mã đề 302
4 trang 0 0 0 -
Đề thi học kì 1 môn Ngữ văn lớp 6 năm 2021-2022 có đáp án - Trường THCS Thượng Thanh
4 trang 0 0 0 -
Đề thi giữa học kì 1 môn Toán lớp 11 năm 2022-2023 - Trường THPT Nguyễn Hữu Huân
3 trang 0 0 0 -
Bài giảng Động lực học công trình - Trường Đại học Kỹ thuật Công nghiệp
123 trang 3 0 0 -
Bài giảng học phần Địa chất công trình - Trường Đại học Kỹ thuật Công nghiệp
77 trang 1 0 0 -
142 trang 0 0 0
-
Bài giảng học phần Công nghệ gia công cơ 4 – Đại học Kỹ thuật Công nghiệp
64 trang 0 0 0 -
Bài giảng Bảo dưỡng và sửa chữa máy công nghiệp - Trường Đại học Kỹ thuật Công nghiệp
70 trang 0 0 0