Hướng dẫn how do i assign a value to a variable in mysql trigger? - làm cách nào để gán giá trị cho một biến trong trình kích hoạt mysql?
0 Show Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi tạo trình kích hoạt MySQL và khai báo một biến. Sau đó, tôi có một số nếu điều kiện. bên trong nếu không thể được đặt giá trị thành bên được khai báo đó của IF. Nó có thể? Bởi vì tôi cần dữ liệu biến đó đến các chức năng khác. Tôi luôn nhận được vô giá trị. Đây là truy vấn cài đặt mã mẫu của tôi nhận được giá trị khi nó thực thi
Cảm ơn rât nhiều hỏi ngày 13 tháng 1 năm 2020 lúc 3:34Jan 13, 2020 at 3:34
4 Mô hình hóa ví dụ.
0 2 DBFiddle ở đây Nghiên cứu. Ứng dụng. Đã trả lời ngày 13 tháng 1 năm 2020 lúc 8:27Jan 13, 2020 at 8:27
AkinaakinaAkina 34,7K5 Huy hiệu vàng13 Huy hiệu bạc21 Huy hiệu đồng5 gold badges13 silver badges21 bronze badges Tôi có một bảng ước tính và bảng ước tính_line_items. Tôi đang cố gắng cập nhật bảng ước tính bất cứ khi nào một mục con của con đó thay đổi. Tôi tiếp tục chạy vào một lỗi cú pháp. Lỗi không mô tả lắm ("Bạn có lỗi trong cú pháp SQL của mình; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ Mariadb của bạn"). Có vẻ như tôi đang làm hỏng việc thiết lập các giá trị biến. 4Chỉnh sửa: Tôi cũng đã thử đặt các biến như thế này, với cùng một kết quả: 1Hỏi ngày 12 tháng 8 năm 2017 lúc 3:27Aug 12, 2017 at 3:27
1 Bạn nghĩ thế nào về ... 5Đã trả lời ngày 12 tháng 8 năm 2017 lúc 10:11Aug 12, 2017 at 10:11
Stefanstefanstefan 2.4371 Huy hiệu vàng8 Huy hiệu bạc10 Huy hiệu đồng1 gold badge8 silver badges10 bronze badges 1 13.7.4.1 & nbsp; Đặt cú pháp để gán biến 6
2 Cú pháp để gán biến cho phép bạn gán các giá trị cho các loại biến khác nhau ảnh hưởng đến hoạt động của máy chủ hoặc máy khách:
Một câu lệnh 2 gán các giá trị biến không được ghi vào nhật ký nhị phân, do đó, trong các kịch bản sao chép, nó chỉ ảnh hưởng đến máy chủ mà bạn thực thi nó. Để ảnh hưởng đến tất cả các máy chủ sao chép, thực thi câu lệnh trên mỗi máy chủ.Các phần sau đây mô tả cú pháp 2 để cài đặt các biến. Họ sử dụng toán tử gán 5, nhưng toán tử gán 6 cũng được phép cho mục đích này.
Phân công biến do người dùng xác địnhTham số và phân công biến cục bộ Phân công biến hệ thống Đặt xử lý lỗiNhiều gán biến 8Các biến do người dùng xác định được tạo cục bộ trong một phiên và chỉ tồn tại trong bối cảnh của phiên đó; Xem Phần & NBSP; 9.4, các biến do người dùng xác định. Một biến do người dùng xác định được viết là 7 và được gán giá trị biểu thức như sau:Tham số và phân công biến cục bộPhân công biến hệ thống 9Phân công biến hệ thốngĐặt xử lý lỗi Nếu bạn thay đổi biến hệ thống phiên, giá trị vẫn có hiệu lực trong phiên của bạn cho đến khi bạn thay đổi biến thành một giá trị khác hoặc phiên kết thúc. Sự thay đổi không có tác dụng đối với các phiên khác. Nếu bạn thay đổi biến hệ thống toàn cầu, giá trị được ghi nhớ và sử dụng để khởi tạo giá trị phiên cho các phiên mới cho đến khi bạn thay đổi biến thành một giá trị khác hoặc máy chủ thoát. Thay đổi có thể nhìn thấy cho bất kỳ khách hàng nào truy cập giá trị toàn cầu. Tuy nhiên, thay đổi chỉ ảnh hưởng đến giá trị phiên tương ứng cho các máy khách kết nối sau khi thay đổi. Thay đổi biến toàn cầu không ảnh hưởng đến giá trị phiên cho bất kỳ phiên khách hàng hiện tại nào (thậm chí không có phiên trong đó thay đổi giá trị toàn cầu xảy ra). Ghi chú Đặt giá trị biến hệ thống toàn cầu luôn yêu cầu các đặc quyền đặc biệt. Đặt giá trị biến hệ thống phiên thường không yêu cầu đặc quyền đặc biệt và có thể được thực hiện bởi bất kỳ người dùng nào, mặc dù có các ngoại lệ. Để biết thêm thông tin, xem Phần & NBSP; 5.1.8.1, Đặc quyền biến hệ thống của hệ thống. Các cuộc thảo luận sau đây mô tả các tùy chọn cú pháp để thiết lập các biến hệ thống:
Để đặt giá trị biến hệ thống toàn cầu thành giá trị mặc định của MySQL được biên dịch hoặc biến hệ thống phiên thành giá trị toàn cầu tương ứng hiện tại, hãy đặt biến thành giá trị 1. Ví dụ: hai câu sau đây giống hệt nhau trong việc đặt giá trị phiên của 2 thành giá trị toàn cầu hiện tại: 2Để hiển thị tên và giá trị biến hệ thống:
Đặt xử lý lỗiNếu bất kỳ gán biến nào trong câu lệnh 2 không thành công, toàn bộ câu lệnh không thành công và không có biến nào được thay đổi.
2 tạo ra một lỗi trong các trường hợp được mô tả ở đây. Hầu hết các ví dụ hiển thị các câu lệnh 2 sử dụng cú pháp từ khóa (ví dụ: id | val -: | --: 1 | 11 2 | 224 hoặc id | val -: | --: 1 | 11 2 | 226), nhưng các nguyên tắc cũng đúng đối với các câu lệnh sử dụng các sửa đổi tương ứng (ví dụ: id | val -: | --: 1 | 11 2 | 225 hoặc id | val -: | --: 1 | 11 2 | 228).
Nhiều gán biếnMột câu lệnh 2 có thể chứa nhiều bài tập biến, được phân tách bằng dấu phẩy. Câu lệnh này gán một giá trị cho biến do người dùng xác định và biến hệ thống: 7Nếu bạn đặt nhiều biến hệ thống trong một câu lệnh, từ khóa id | val -: | --: 1 | 11 2 | 224 hoặc id | val -: | --: 1 | 11 2 | 226 gần đây nhất trong câu lệnh được sử dụng cho các bài tập sau không có từ khóa được chỉ định. Ví dụ về bài tập đa biến: 8Bộ điều chỉnh id | val -: | --: 1 | 11 2 | 225, id | val -: | --: 1 | 11 2 | 228 và 0 chỉ áp dụng cho biến hệ thống ngay sau đó, không phải bất kỳ biến hệ thống còn lại nào. Câu lệnh này đặt giá trị toàn cầu 7 thành 50000 và giá trị phiên thành 1000000: 9Tài liệu tham khảo biến hệ thống trong các biểu thứcĐể chỉ giá trị của một biến hệ thống trong các biểu thức, hãy sử dụng một trong các bộ biến đổi ____ 50. Ví dụ: bạn có thể truy xuất các giá trị biến hệ thống trong câu lệnh 9 như thế này: 0Ghi chú Một tham chiếu đến một biến hệ thống trong một biểu thức là 0 (với 0 thay vì id | val -: | --: 1 | 11 2 | 225 hoặc id | val -: | --: 1 | 11 2 | 228) trả về giá trị phiên nếu nó tồn tại và giá trị toàn cầu khác. Điều này khác với 4 = 8, luôn luôn đề cập đến giá trị phiên.
Làm thế nào để bạn gán một giá trị cho một biến trong kích hoạt SQL?Vậy làm cách nào để gán giá trị cho biến được khai báo chính?Chỉ cần chọn customerID vào customerID từ người bán trong đó id = new.resellerid giới hạn 1.Nhưng sau khi Trigger kết thúc biến này sẽ bị phá hủy và giá trị của nó sẽ bị mất.SELECT CustomerID INTO CustomerId FROM Seller WHERE Id = NEW. ResellerID LIMIT 1 . But after trigger finished this variable will be destroyed, and its value will be lost.
Làm thế nào để bạn gán một giá trị cho một biến trong MySQL?Các biến được viết là "@var_name" trong đó "var_name" có thể được thay thế bằng bất kỳ ký tự chữ và số nào hoặc các ký hiệu "-", "_" và "$".Chúng có thể được gán bằng các ký tự "=" hoặc ": =".Giá trị có thể là bất kỳ kiểu dữ liệu nào được hỗ trợ bởi cơ sở dữ liệu MySQL.using the "=" or ":=" characters. The value can be any datatype supported by the MySQL database.
Làm thế nào để bạn khai báo một biến trong Trigger?Tạo Trình kích hoạt Update_estimate_from_line_items Sau khi cập nhật trên estimate_line_items cho mỗi hàng bắt đầu - khai báo biến khai báo vPrev_amnt int;Khai báo vnew_amnt int;Tuyên bố ndiff int;Đặt vprev_amnt = old.price * old.quantity;Đặt vnew_amnt = new.price * mới.DECLARE vPrev_amnt INT; DECLARE vNew_amnt INT; DECLARE nDiff INT; SET vPrev_amnt = OLD. price * OLD. quantity; SET vNew_amnt = NEW. price * NEW.
Chúng ta có thể vượt qua một giá trị trong kích hoạt không?1 câu trả lời.Không. Bạn không thể vượt qua trình kích hoạt tham số.No. YOu can not pass a parameterto trigger. |