在使用JDBC时,我遇到了一个问题,我在mysql中创建了一个包含员工信息Employee_Id、名称、城市、工资和Year_of_joining的表,我还创建了一个存储过程到同一个数据库,该数据库接受两个输入,并根据加入年份更新员工的薪资。以下是存储过程:
CREATE PROCEDURE proc(IN var1, IN var2)
BEGIN
UPDATE "TABLE" SET Salary=var1+Salary WHERE Year_of_Joining= var2
END
现在,我通过java创建了一个数据库连接到mysql数据库(该连接正在成功地建立)。
但
我有个简单的问题,
我有桌子:
| 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中。在用户表中,Street是一个Varchar (255)。一切正常,除非在名称street中有一个撇号,在本例中我有以下SQL警告:
例如,如果在Street名称中输入"Francesco D‘Assisi24“
Error: 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 'assisi
我使用的是mysql,我有一个带有输入变量的存储过程。
我想在select语句中使用这个变量(with like子句)。
例如:
DELIMITER $$
DROP PROCEDURE IF EXISTS `DeleteDataByTransactionID` $$
CREATE DEFINER=`root`@`%` PROCEDURE `DeleteDataByTransactionID`(in **$TransactionID** varchar(50))
BEGIN
delete from sqlstatements where tempsql like '%'+
我需要通过java中的服务调用验证主表中的所有值。但执行死刑需要更多的时间。因此,我计划在MySQL存储过程上执行任务。
例如:
我有一个名为User的POJO类
User user = new User();
user.setId(1);
user.setName("name");
我可以将用户 java对象传递给MySQL存储过程吗?
环境: MySQL 5.1,Linux
我有一个存储过程,它从一个输入值中计算几个值。这些值作为OUT参数返回。我想对每个行集调用这个过程,并将这些值显示为结果集中的列。这些值具有复杂的关系,因此不容易为每个值构造不同的函数。
问题是:如何获得参数以显示为表中的列?
到目前为止,我的情况如下:
DELIMITER $_$
DROP PROCEDURE IF EXISTS in_out;
CREATE PROCEDURE in_out (
IN s TEXT,
OUT op TEXT,
OUT opn INT,
OUT opd TEXT
我在MySQL中有DB,使用通用的mysql实体框架最终会出现错误,所以我切换到了pomelo.entityframeworkcore.mysql。
在我的MySQL Db中,几乎没有存储过程。但我不明白该如何与它结合。通常的mysql查询运行良好,工作正常,就像这样:
public void ONELINE_SQL_TEST()
{
var db = new DBContext();
var test = db.DocumentsInfo.FromSql("SELECT * FROM `DocumentsInfo` LIMIT 0, 2").ToList();
我的问题是,在mysql中我创建了一个存储过程。我试图通过我的java代码调用这个过程。
我没有任何例外,但数据库没有受到影响。如果我通过预置语句做同样的陈述,那么一切都很好。如果我在工作台上调用这个过程,它也能工作。
存储过程
CREATE DEFINER=`root`@`localhost`PROCEDURE `delete`(IN id INT(11))
BEGIN SET SQL_SAFE_UPDATES=0; Delete from sender where id = id;
END
代码中的调用
public void deleteSender(int i
我有一个使用MySQL的Java应用程序。在webapp日志中,它显示了以下消息:
Error querying database. Cause: java.sql.SQLException: User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted, configure connection with "noAccessToProcedureBodies=true"
to have dr
我刚开始使用程序,似乎不能让我的程序正常工作。我正在使用WAMPP v5.1.36,并使用MySQL服务器上的MySQL控制台输入代码。如果我去(重新)创建这个过程。我得到错误#1304 (42000)。
mysql> DELIMITER //
mysql>
mysql> CREATE PROCEDURE modx.getCRID (IN x VARCHAR(255),OUT y INT)
-> BEGIN
-> DECLARE y INT;
-> SELECT id INTO y
-
我在MySQL存储过程中遇到了一个奇怪的问题。
我编写了一个简单的存储过程,如下所示:
{
DELIMITER $$
CREATE DEFINER=`username`@`%` PROCEDURE `sp_create_my_log`(IN source TEXT,
OUT my_id INT)
BEGIN
--
-- insert record and return primary key
INSERT INTO my_log (source) VALUES (source);
SET my_id = L
我试图用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 5.7中创建一个函数,该函数将返回一年的总销售额(格式为$ ),并在给定年份的情况下返回两个小数位,作为整数输入。
表列InvoiceID、deptid、salsamt、salesdate
DELIMITER $$
CREATE FUNCTION `tot_sale` (Year INT)
RETURNS VARCHAR2
BEGIN
Select concat('$', format(salesamt), 2)
from sales
where YEAR(salesdate) = Year;
R
我在MySQL中创建了一个表。
我希望这个表只存储30行,当超过30行时,假设是31行,那么表必须删除旧的30行。
这在MySQL中是可能的吗?
我使用了下面的触发器,但它不适用于我。
CREATE TRIGGER my_name
BEFORE INSERT ON try
FOR EACH ROW
BEGIN
DECLARE cnt INT;
SELECT count(*) INTO cnt FROM try;
IF cnt = 30 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT =
我正在使用navicat与mysql数据库。
我的数据库正在测试
我有一个表,名为模式的事务:日期、共享名、buyORsell、数量、终结率
我正在尝试创建一个新的过程,它接受一些输入并输出一些结果,我希望在执行这个过程时,这个过程要求用户输入参数,并相应地输出结果。
My requirement:给出了一个输入(事务类型,即‘买进’或‘卖出’),它应该输出该类型的所有事务
我创建一个函数并单击过程。
BEGIN
#Routine body goes here...
select * from test.transactions where buyORsell = intype;
EN