我一直在犯错误。如何在MySQL中运行这样的查询?
UPDATE Events SET eventName = 'hi' IF ROW_COUNT() = 0 INSERT INTO EVENTS (eventName) VALUES (hi);
基本上我想要更新,但是如果没有要更新的数据,我会插入数据。有什么办法可以做到这一点吗?
编辑1获取此错误
mysql> UPDATE Events
-> SET eventName = 'hi';
IF ROW_COUNT() = 0
THEN
DELETE FROM Events
我正在尝试在MariaDB/SQL中自动执行一个Load Data Infile命令(它们是一样的吗?)每隔5分钟。这是我试图自动化的代码块。
LOAD DATA LOCAL INFILE 'path to text file'
INTO TABLE Student
FIELDS TERMINATED BY ',';
我已经尝试了一些更简单的解决方案,但都没有效果。我正在考虑创建一个脚本并使用内置的系统调度器,但我使用的是linux,对此并不熟悉,因此我非常希望在MYSQL中实现这一点。谢谢你的帮助!
我正在试图改变我在MySQL的事件。我希望它执行第一个插入,然后从一个表中删除所有数据。当我试图用以下代码更改事件时:
ALTER event transfer_to_population_hist do INSERT INTO population_hist
(
location_id,
count,
dtm
)
SELECT DISTINCT(location_id),
我有一个表T1,并在插入T1后触发触发器,并使用UDF调用外部T1程序,其中应用程序正在查找最后插入的数据,并在条件基上执行操作,但它不像预期的那样工作。请帮助,因为我猜我们不能从触发触发器的同一表中选择数据??是这样吗?
触发器
DELIMITER @@
CREATE TRIGGER CALL
AFTER INSERT ON call_test
FOR EACH ROW
BEGIN
DECLARE cmd CHAR(255);
DECLARE result int(10);
SET cmd=CONCAT('php /var/www/html/test/call.php'
我编辑了这个问题,因为下面的答案提到,当使用while和begin时,它应该在存储过程中。
所以现在我在一个存储过程中运行它,但是我仍然得到一个错误。
counter;
while counter < 2
begin
GOTO counter
SELECT var1 AS LOCATION,
ROUND(sum(CASE WHEN t2.tagid = var2 THEN t2.floatvalue ELSE 0 END), 2) AS MR
ROUND(sum(CASE WHEN t2.tagid = var3 THEN t2.floatvalue ELSE 0 END),
我使用的是Winform C#和MySQL。
我的朋友正在使用SQL。
他说MySQL没有存储过程。但我拒绝这样做,因为我已经在MySQL中使用这个SP了。他说这是一个函数,而不是SP。SP是预编译的。
我很困惑。
这是我的SP。
BEGIN
insert into bonafide_records (date,admin_no,name,CreationId) values (date_a,admin_no_a,name_a,CreationId_a);
END
请帮我清理一下,MySQL有SP吗?
根据某一行是否已经存在,我试图更新我的数据库。
在我的php文件中,我创建了以下字符串:
IF EXISTS(SELECT updown
FROM voted_source
WHERE ID = ? AND userID = ?)
BEGIN
UPDATE voted_source
SET updown = TRUE
WHERE ID = ?;
我创建了如下所示的存储过程:
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CRE
从这里所以。我和DELIMITER搞混了。我还尝试了以下几种方法:
CREATE EVENT test
ON SCHEDULE EVERY 2 MINUTE
DO
BEGIN
SELECT 1;
SELECT 2;
END
这让我犯了一个错误,就像刚才提到的问题:
错误代码: 1064您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得在第5行附近使用的正确语法。
如果我运行以下sql:
DELIMITER $$
CREATE EVENT test
ON SCHEDULE EVERY 2 MINUTE
DO
BEGIN
SELECT 1;
SELECT 2;
E
我想检查MySQL db是否存在,以及它是否授予用户权限。
SELECT Count(schema_name)
FROM information_schema.schemata
WHERE schema_name = 'tmx'
INTO @found ;SELECT @found; -- Verified, the result is 1IF (@FOUND == 1) THEN
GRANT
SELECT,
UPDATE
ON tmx.* TO 'my_new_user'@'%';END IF;
当我执行