我试图用mysql连接器来修改实体框架6中的表。
错误是:
PM> update-database -verbose
Using StartUp project 'Facade'.
Using NuGet project 'DAL'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'GiveAndGet' (DataSource: localhos
如何在Mysql中更改存储过程。
DROP PROCEDURE IF EXISTS sp_Country_UPDATE;
CREATE PROCEDURE sp_Country_UPDATE
( IN p_CountryId int,
IN p_CountryName nvarchar(25),
IN p_CountryDescription nvarchar(25),
IN p_IsActive bit,
IN p_IsDeleted bit )
UPDATE
Country
SET
CountryName =
我有一个查询,看起来像这样:
mysql_query("IF EXISTS(SELECT * FROM predict WHERE uid=$i AND bid=$j)
THEN UPDATE predict SET predict_tfidf=$predict_tfidf WHERE uid=$i AND bid=$j
ELSE INSERT INTO predict (uid, bid, predict_tfidf) VALUES('$i','$j','$predict_tfidf')
在MySQL中,有没有办法从另一个存储过程中创建一个存储过程?
我们通过使用临时存储过程来处理数据库更新,该过程检查表中的数据库版本:
DELIMITER #
DROP PROCEDURE IF EXISTS sp_temp_update_table#
CREATE PROCEDURE sp_temp_update_table()
BEGIN
DECLARE v_db_version DECIMAL(10,6);
SELECT CAST(`value` AS DECIMAL(10,6)) INTO v_db_version
FROM `db_metadata` met
我有以下MYSQL查询:
START TRANSACTION;
SELECT sport_id INTO @a FROM sports WHERE sport_id = 2 FOR UPDATE;
UPDATE sports SET sport_name = 'Table Tennis' WHERE sport_id = @a;
if (@a > 1) then
COMMIT;
ELSE
ROLLBACK;
END IF;
问题是它在if语句处返回一个错误:
#1064 -您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得
我一直在犯错误。如何在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
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_update_NotifyTrainerStatus_in_notification_table`$$
CREATE DEFINER=`root`@`%` PROCEDURE `sp_update_NotifyTrainerStatus_in_notification_table`(IN email VARCHAR(50), IN id BIGINT)
BEGIN
SELECT @employee_id := `Employee_Id` FROM `employee_prof
我发现说IF ELSE END IF只在存储过程中支持。
MySQL supports the IF, CASE, ITERATE, LEAVE LOOP, WHILE, and REPEAT constructs for flow control within **stored programs**.
我们尝试过,但似乎不支持通过cli运行批处理语句。
为了优化性能并减少往返,不考虑应用程序读取ROW_COUNT()。如果mysql能以光速运行,那就更好了。
如何在不使用任何其他存储过程的情况下使其工作?我们尝试在每次更新时使用WHERE ROW_COUNT()来挂起任何一个错误的更新链;但
我承认,我是一个MySQL的家伙,而不是一个MySQL的家伙,但我不太明白为什么我会收到这样的错误信息:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE @UpdatedID VARCHAR(5)' at line 1
以下是我的疑问:
DECLARE @UpdatedID VARCHAR(5);
SET @UpdatedI
我在MySQL中的触发器有问题。我有一个名为"last_modified“的列,我希望在表被编辑时,它会自动更新为当前的日期和时间。使用触发器,这是我的SQL查询:
delimiter //
CREATE TRIGGER trg_update_responders BEFORE UPDATE ON survey_responders
FOR EACH ROW
BEGIN
UPDATE survey_responders
SET NEW.last_modified = CURRENT_DATETIME();
END;//
但是,当我更新表时,例如使用下面的查询:
UPDATE surve
查询中出错:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解要使用的正确语法,请在第1行的'IF EXISTS(SELECT flag FROM check customerID= '6767') SELECT flag‘中使用
这个查询没有接近第1行,所以我不确定错误是什么。有人能给点建议吗?:)
<?php
$db_link = mysql_connect('localhost', 'secrets', '') or die('Could not connect to the
我正在尝试创建一个SP,它将在一个表中的大约1亿行上运行批处理更新。我为它创建了下面的SP:
delimiter //
CREATE PROCEDURE `bulk_update`(IN table_name varchar(30))
BEGIN
DECLARE rows INT;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET rows = 1;
WHILE rows > 0
do
SET autocommit=1;
SET @query =CONCAT('update ',table_name,
Create procedure Movestaff (input_staffID smallINT, new_deptID tinyINT)
BEGIN
declare old_deptID tinyINT;
start transaction;
select departmentID into old_deptID from staff where staffID=input_staffID;
update staff set departmentID = new_deptID where staffID=input_staffID;
update department set
我有个简单的问题,
我有桌子:
| val | type | status |
|-----|------|--------|
| 90 | 1 | a |
我希望有一个存储的proc,它能够根据输入param中的变量更新上面的表。
例如,在PHP中,我有数组:
$data = ['val' => 80, 'status' => 'c']
我想把这些数据发送给mysql存储的proc,这样它就会知道它需要update val to 80 and status into 'c'
或者另一个例子:
$da
我的MySql db中有这样的MySql表。
Id Title RepeatCount
--------------------------
1 Tag1 1
2 Tag2 5
3 Tag3 8
我希望将记录插入到PDO中的表中,如果不存在相同Title的记录(Title是主键),如果存在,则增加记录RepeatCount。
就像这个例子:
prepare(
"IF (:Title IN (SELECT Title FROM tag))
THEN INSERT INTO tag (T
我正在触发器中工作,但在执行代码时出现错误: CREATE TRIGGER my_trigger
AFTER INSERT
ON reservation
FOR EACH ROW
EXECUTE PROCEDURE update_available_space NEW.date_shift, NEW.start_hour_shift; 错误代码: 1064。您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解在第5行'PROCEDURE update_available_space NEW.date_shift,NEW.start_hour_shift‘附近使
与此问题和此代码的关系:
UPDATE table SET foo=1 WHERE boo=2
SELECT * from table WHERE foo=1 AND boo=2
如何使用MySQL同时更新和选择?
似乎提出现有问题的人使用的是PostgreSQL。我如何在MySQL中做到这一点?在MySQL中似乎没有returning命令。
问题很简单,但似乎每次我在mysql语法中做了一些错误的事情。我想在一个字符串字段后的表中进行搜索。如果这个字段存在,我会增加apparitions.If不存在的数量,我会用它添加一个新的行。我正在尝试编写一个查询,我将在jdbc或hibernate中使用它。我在这个网站上看了很多例子,但我发现我在mysql语法中做了一些错误的事情。
For the table:
mysql> select * from phrase;
+----+---------------+-------------------+
| id | phrase_string | apparition_number
我有一个mysql表,在这里我使用这个查询:
INSERT INTO `stats` (`id`, `shop`, `price`, `timestamp`)
VALUES (NULL, '$shop', '$price', 'timestamp') ON DUPLICATE KEY UPDATE price='$price'
商店栏是独一无二的。"Id“=主键。时间戳列由mysql: on update CURRENT_TIMESTAMP更新。
Data in the dB:
row: id=1, shop=viaco
这是我似乎找不到信息的东西。
假设我有一个表users,出于安全考虑,如果对id列进行了引用,我希望任何查询都只能是可执行的。
例如,这不应奏效:
UPDATE users SET source="google" WHERE created_time < 20210303;
上面的update语句在语法上是有效的,但是由于它没有引用id列,所以它不应该是可执行的。
只有以下内容是可执行的:
UPDATE users SET source="google" WHERE id in (45,89,318);
有什么方法可以从MySQL服务器端强制执行吗?
我试图为mysql编写一个存储过程,基本上,它将选择一个id,并更新所选id的操作日期。
DELIMITER //
CREATE PROCEDURE getID(
IN proc_intervaldate datetime
)
BEGIN
DECLARE RUserID BIGINT;
SELECT
UserID
INTO RUserID
FROM Tasks
WHERE OperationDate < proc_intervaldate
LIMIT 1 ;
UPDATE Tasks SET O
CREATE PROCEDURE update_table(
IN choice INT(4),
IN id VARCHAR(50),
IN string VARCHAR(50)
)
BEGIN
UPDATE salesman
set salesman_name = IF(choice = 1, string, salesman_name)
where salesman_id = id
UPDATE salesman
set date = IF(choice = 2, string, date)
where salesman_id = id
END
如果choice为1
我一直在努力寻找这个问题的答案,但在我的所有研究中都没有找到任何明确的“是”或“否”。
我正在运行一个简单的MySQL查询,如下所示:
UPDATE item SET `score`=`score`+1 WHERE `id`=1
有没有办法让该查询返回更新后的值,而不是受影响的行数?仅供参考,我使用PHP完成此操作,因此实际代码如下所示:
$sql = "UPDATE item SET `score`=`score`+1 WHERE `id`=1";
$new_value = mysql_query($sql);
//Unfortunately this does n
我目前正在使用嵌套set模型,并且已经阅读了MySQL站点()上的文章。
我直接从这篇文章中得到了以下查询:
LOCK TABLE categories WRITE;
SELECT @myRight := right FROM categories WHERE name = ?;
UPDATE categories SET right = right + 2 WHERE right > @myRight;
UPDATE categories SET left = lft + 2 WHERE left > @myRight;
INSERT INTO categories (na
我试图建立一个数据库搜索引擎使用NetBeans为一家建筑公司,以搜索一个项目的价格基于以前做的项目。我将所有的表迁移到一个MySQL模式中。所有表的格式都类似于下面的
我正在尝试生成一个查询,它将运行所有这些表,并为所有结果提供一个表。示例查询将如下所示
SELECT * FROM test.university_13 WHERE Sec LIKE "10%" AND Descrip LIKE "%Tackboard%" LIMIT 20
这只适用于一个表,它是university_13。我有创建所有表的表列表的代码,然后我循环执行一个MySQL存储过程,该过
此外,INSERT/UPDATE/SELECT/DELETE,MySQL有一个叫做的东西。我读到它可能比普通的SELECTs快得多,我在MySQL控制台上尝试过,而且速度似乎很快。
但是,我发现的唯一信息是参考手册中的那一页,以及我能告诉你的信息,除了查看控制台中的数据之外,它对任何事情都没有用处。
那么,有谁有在HANDLERs中使用MySQL的真正Lifetm经验吗?
我可以在存储过程中使用它而不是SELECT吗?
我可以从像SELECT col INTO variable这样的列中分配变量吗?
我可以加入吗?还是我已经从几个HANDLERs手动完成了它们?
一个简单的问题:
下面的update查询在SQL Server中运行良好,但在MySQL中失败。
MySQL err.msg = "Error Code: 1093. You can't specify target table 'Pos' for update in FROM clause".
我可以找到几个变通方法,但正在寻找最佳实践。
update Pos set Printed = 1
where InvoiceNo = 3005
and Status = 'N'
and Pos.ItemNo IN
(select Pos
我用的是这个帖子-
重命名存储过程
在这里,尝试执行答案中所示的命令-
UPDATE `mysql`.`proc`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
name = '<old_proc_name>';
我得到了错误-
ERROR 1146 (42S02): Table 'mysql.proc' doesn'
我正在尝试创建一个过程,该过程(1)将名为“Hour”的新属性添加到名为“Project”的表中(如果它没有“Hour”属性),(2)将“Hour”的值初始化为0.0。下面是我尝试过的代码(使用myPhpAdmin),但是它给了我SQL语法错误。我做错什么了?
错误信息显示:“SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得接近'UPDATE Project SET Hours = 0.0 where Project.Pnumber = p end if; end'的正确语法”。
delimiter &
create procedure init(in
是的,还有一个关于移植代码的问题!
我的ISP已经“升级”了从MariaDB 10.4到MySQL 8.0,我现在必须调整许多以前工作的代码。以下存储过程在MariaDB中运行时没有出现错误,但在MySQL8中,在PREPARE / EXECUTE中会出现语法错误。实际错误是
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near