错误SQL查询:
--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (
`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;
Run Code Online (Sandbox Code Playgroud)
MySQL说:
#1046 - No database selected
Run Code Online (Sandbox Code Playgroud)
这里需要一些帮助.
我经常看到人们正在使用Delimiters.我试着找出什么是分隔符,它们的目的是什么.经过20分钟的谷歌搜索,我无法找到满足我的答案.那么,我现在的问题是:什么是分隔符,什么时候应该使用它们?
我有以下MySQL触发器
SET @iUserId = OLD.LastChangedBy;
IF NOT NEW.LastChangedBy <=> OLD.LastChangedBy THEN
SET @iUserId = NEW.LastChangedBy;
END IF;
IF NOT NEW.BookingId<=> OLD.BookingId THEN
INSERT INTO AuditTrail VALUES (UUID(),@iUserId,'UPDATE','Booking', OLD.BookingId,'BookingType ',OLD.BookingType ,NEW.BookingType ,NOW());
END IF;
Run Code Online (Sandbox Code Playgroud)
这被称为每次Booking_AUPD预订更新后的创建触发器
我遇到的问题是如何在AFTER UPDATE触发器中获取OLD字段值?
delimiter $$
CREATE TRIGGER REDUCE_NOTE_COUNT
AFTER DELETE ON iv_notes
FOR EACH ROW BEGIN
DECLARE supplierid int(11);
DECLARE customerid int(11);
SELECT supplierid ,customerid FROM iv_documents WHERE id=OLD.note_documentid;
SET supplierid=supplierid;
SET customerid=customerid;
IF supplierid=OLD.note_companyid THEN
update iv_documents
set supplier_notes=supplier_notes-1
where id=OLD.note_documentid and supplier_notes>0;
END IF;
IF customerid=OLD.note_companyid THEN
update iv_documents set customer_notes=customer_notes-1
where id=OLD.note_documentid
and customer_notes>0 ;
END IF;
END$$
Run Code Online (Sandbox Code Playgroud)
分隔符;
我有book和store_order桌子。
我想制作触发器(但它包含错误):
DELIMITER $$
CREATE TRIGGER t1
BEFORE DELETE ON store_order
FOR EACH ROW
BEGIN
UPDATE book SET number = number + NEW.quantity WHERE ISBN = NEW.ISBN;
END
$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)