Haha sory bạn nhé mình quên ko ghi mình đang demo trên sql server. 2 loại hình HQTCSDL này no có cú pháp khác nhau nên thành ra bên mysql bạn phải viết khác đi nhé.
inserted = NEW
deleted = OLD
nên bạn chỉ cần chạy ntn là ok nhé
DELIMITER $$
CREATETRIGGER trg_DatHang
AFTERinsertON tbl_DatHang FOR EACH ROWBEGINUPDATE tbl_KhoHang
SET SoLuongTon = SoLuongTon - NEW.SoLuongDat
where MaHang = New.MaHang;END;
$$
DELIMITER;
Và vì sao bạn có thể lấy được NEW.SoLuongDat thì nó là tương đương với câu select sau nhé bạn
SET SoLuongTon = SoLuongTon -(SELECT SoLuongDat
FROM inserted
WHERE MaHang = tbl_KhoHang.MaHang )FROM tbl_KhoHang
JOIN inserted ON tbl_KhoHang.MaHang = inserted.MaHang
Bạn có thể xem cú pháp bên mysql trên document hoặc là vào đây cũng đc nhé
PHÍA DƯỚI LÀ 2 TABLE MÌNH TẠO; BÀI VIẾT CỦA BẠN RẤT HỮU ÍCH VÀ HAY ĐỐI VỚI MÌNH; VÌ VẬY NHỜ BẠN XEM DÙM MÌNH VỚI NHÉ. THANK
CREATE TABLE tbl_KhoHang (
id int(11) NOT NULL,
MaHang varchar(20) NOT NULL,
TenHang text NOT NULL,
SoLuongTon int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO tbl_KhoHang (id, MaHang, TenHang, SoLuongTon) VALUES
(1, '1', 'Rau mùng t?i', 12),
(2, '2', 'Rau mu?ng', 5),
(3, '3', 'Lam bo gi ni', 8);
ALTER TABLE tbl_KhoHang
ADD PRIMARY KEY (MaHang);
CREATE TABLE tbl_DatHang (
id int(11) NOT NULL,
MaHang text NOT NULL,
SoLuongDat int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO tbl_DatHang (id, MaHang, SoLuongDat) VALUES
(11, '1', 10);
Mình lại nghỉ ngay tới cái cách 2... Cách 2+ hay “1+” mình đều có thể làm được nhưng mình lại chả thích đệ quy cho lắm... Mình luôn tìm cách nào đó khác mà không bao giờ dùng đệ quy... :Đ
Bạn thử xem CSDL bạn tạo đã chính xác chưa ?. vì minhg vừa tạo lại các bảng và columns sau đó tạo trigger bằng câu lệnh của bạn nó vẫn hoạt động. Còn lỗi 1064 trong mysql là lỗi cú pháp và nó do nhiều yếu tố cấu thành. Bạn xem ở đây nhé
https://stackoverflow.com/questions/23515347/how-can-i-fix-mysql-error-1064
THẢO LUẬN
Haha sory bạn nhé mình quên ko ghi mình đang demo trên sql server. 2 loại hình HQTCSDL này no có cú pháp khác nhau nên thành ra bên mysql bạn phải viết khác đi nhé.
inserted = NEW
deleted = OLD
nên bạn chỉ cần chạy ntn là ok nhé
Và vì sao bạn có thể lấy được NEW.SoLuongDat thì nó là tương đương với câu select sau nhé bạn
Bạn có thể xem cú pháp bên mysql trên document hoặc là vào đây cũng đc nhé
https://www.techonthenet.com/mysql/triggers/after_insert.php
Nếu có câu hỏi cứ hỏi nhé. rảnh mình sẽ tìm tòi và giải đáp cho
Có 1 cách nữa là dùng IQKeyboardManager
Chuyện phỏng vấn là đàm đạo cho vui mà, hay là vô Sendo đàm đạo đi bạn
Regex nhiều khi là cứu cánh cho rất nhiều giải pháp
Mình chỉ chia sẽ về các ý tuởng mà mình đã nhận đuợc trogn quá trình phỏng vấn thôi, mà đệ quy cũng hay mà
lắm loại quá Abstract Interface Trait Helper
method describeContents làm gì vậy ạ ??
PHÍA DƯỚI LÀ 2 TABLE MÌNH TẠO; BÀI VIẾT CỦA BẠN RẤT HỮU ÍCH VÀ HAY ĐỐI VỚI MÌNH; VÌ VẬY NHỜ BẠN XEM DÙM MÌNH VỚI NHÉ. THANK
CREATE TABLE
tbl_KhoHang
(id
int(11) NOT NULL,MaHang
varchar(20) NOT NULL,TenHang
text NOT NULL,SoLuongTon
int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO
tbl_KhoHang
(id
,MaHang
,TenHang
,SoLuongTon
) VALUES (1, '1', 'Rau mùng t?i', 12), (2, '2', 'Rau mu?ng', 5), (3, '3', 'Lam bo gi ni', 8);ALTER TABLE
tbl_KhoHang
ADD PRIMARY KEY (MaHang
);CREATE TABLE
tbl_DatHang
(id
int(11) NOT NULL,MaHang
text NOT NULL,SoLuongDat
int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO
tbl_DatHang
(id
,MaHang
,SoLuongDat
) VALUES (11, '1', 10);-- Indexes for table
tbl_DatHang
ALTER TABLE
tbl_DatHang
ADD PRIMARY KEY (id
);bắt buộc phải dùng redis hả bạn?
me tô
Góc bắt lỗi: đoạn note a ghi nhầm multi-dimension vs multi-demension ạ
làm outsource là kiểu v mà b, task dí khắp nơi
Mình lại nghỉ ngay tới cái cách 2... Cách 2+ hay “1+” mình đều có thể làm được nhưng mình lại chả thích đệ quy cho lắm... Mình luôn tìm cách nào đó khác mà không bao giờ dùng đệ quy... :Đ
@thanhhau thank em nha
Anh ơi, state và props khác nhau như nào a, chung chung qá em vẫn chưa rõ
Bạn thử xem CSDL bạn tạo đã chính xác chưa ?. vì minhg vừa tạo lại các bảng và columns sau đó tạo trigger bằng câu lệnh của bạn nó vẫn hoạt động. Còn lỗi 1064 trong mysql là lỗi cú pháp và nó do nhiều yếu tố cấu thành. Bạn xem ở đây nhé https://stackoverflow.com/questions/23515347/how-can-i-fix-mysql-error-1064
Cảm ơn bạn, bài viết hữu ích
//resources \views
<form class="" method="get" action="{{ route('confirm') }}"> @csrf//routes Route::get("/confirm", "NameController@confirm")->name("confirm");
//App\Http\Controllers
use Illuminate\Http\Request;
class NameController extends Controller {
}
ps/ ý bạn là zậy hả. mình cũng mới tập làm laravel
ReacJS là để build UI, còn backend thì dùng framework hay ngôn ngữ nào mà chả được bạn?!!
Cảm ơn bạn!