1

我已经习惯了 MS sql,所以使用 mySql 肯定会向我抛出一些语法错误,这势必会减慢我的速度。我有以下内容:

declare @expensesSum DOUBLE
select @expensesSum = sum(expenseAmount) from bondsaverdb.expenses
insert into bondsaverdb.expenses
select '6','Extracash',(income - @expensesSum)  from bondsaverdb.income where userName ='Dean'

我得到的错误说:

声明 @expensesSum 附近的语法错误

一定是我声明变量的方式??

提前致谢!

4

2 回答 2

1

MySQL 不需要(甚至显然不允许)您使用declare变量,据我所知,它会将所有对象(包括变量)视为字符串——因此它们不能以他的方式输入。无论如何,这应该工作:

SET @expensesSum = (SELECT SUM(expenseAmount) FROM bondsaverdb.expenses);
INSERT INTO
   bondsaverdb.expenses
SELECT
   '6', 'Extracash', (income - @expensesSum)
FROM
   bondsaverdb.income
WHERE
   userName = 'Dean'

我也不确定那'6'是什么......如果这是一个自动增量 ID,你应该INSERT完全忽略它(并指定要写入的其他列)或保留它NULL

于 2012-05-02T13:50:21.853 回答
1

MySQL 与 SQL Server 非常不同;您通常不声明变量

SET @expensesSum = (select @expensesSum = sum(expenseAmount) from bondsaverdb.expenses);
insert into bondsaverdb.expenses
select '6','Extracash',(income - @expensesSum)  from bondsaverdb.income where userName ='Dean';
于 2012-05-02T13:50:56.090 回答