小编sso*_*zak的帖子

我可以在MySQL中使用参数创建视图吗?

我有这样的观点:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = 2;
Run Code Online (Sandbox Code Playgroud)

我想让它更通用,它意味着将2变为变量.我试过这个:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = @MyVariable;
Run Code Online (Sandbox Code Playgroud)

但MySQL不允许这样做.

我找到了一个丑陋的解决方法:

CREATE FUNCTION GetMyVariable() RETURNS INTEGER DETERMINISTIC NO SQL
BEGIN RETURN @MyVariable; END|
Run Code Online (Sandbox Code Playgroud)

然后观点是:

CREATE VIEW MyView AS
   SELECT Column FROM Table WHERE Value = GetMyVariable();
Run Code Online (Sandbox Code Playgroud)

但它看起来很糟糕,而且用法也很糟糕 - 我必须在每次使用视图之前设置@MyVariable.

有没有解决方案,我可以像这样使用:

SELECT Column FROM MyView(2) WHERE (...)
Run Code Online (Sandbox Code Playgroud)

具体情况如下:我有一个表存储有关被拒绝请求的信息:

CREATE TABLE Denial
(
    Id INTEGER UNSIGNED AUTO_INCREMENT,
        PRIMARY KEY(Id),
    DateTime DATETIME NOT NULL,
    FeatureId MEDIUMINT …
Run Code Online (Sandbox Code Playgroud)

mysql parameters stored-procedures view

85
推荐指数
3
解决办法
11万
查看次数

MySQL服务器的thread_stack参数 - 它是什么?它应该有多大?

几天前我从MySQL数据库得到以下错误:

线程堆栈溢出:用于196608字节堆栈的68744字节,需要128000字节.使用'mysqld -O thread_stack =#'指定更大的堆栈.

我发现的所有文档都说:

MySQL 4.0.10之前的默认值为64KB,之后为192KB.如果线程堆栈大小太小,则会限制服务器可以处理的SQL语句的复杂性,存储过程的递归深度以及其他消耗内存的操作.

我将变量thread_stack设置为256K,但它只是一个随机值.现在它解决了这个问题,但我真的想知道它应该有多大,得到一些示例值或用法.例如:

  • 使用96KB(x KB)的线程堆栈可以做什么,不能做什么?
  • 如何计算我需要多大的线程堆栈?

mysql configuration mysql-management

14
推荐指数
1
解决办法
3万
查看次数

如何在Linux上应用windows SVN制作的差异?

在Windows上我创建了一个多文件差异:

svn diff > mydiff.diff
Run Code Online (Sandbox Code Playgroud)

然后将其移动到linux机器(使用相同版本的相同repo,没有更改).我怎么用它?执行后

 patch -p0 < mydiff.diff
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

patching file licstat/test/unittest/test_licstatactioncontainers.cpp
File licstat/test/unittest/test_licstatactioncontainers.cpp is not empty after patch, as expected
patching file licstat/test/unittest/test_licstatactions.cpp
Hunk #1 FAILED at 99.
1 out of 1 hunk FAILED -- saving rejects to file licstat/test/unittest/test_licstatactions.cpp.rej
can't find file to patch at input line 295
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: licstat/test/unittest/test_licenseserverusagemap.cpp
|===================================================================
|--- licstat/test/unittest/test_licenseserverusagemap.cpp       (revision 6767)
|+++ licstat/test/unittest/test_licenseserverusagemap.cpp       (working copy) …
Run Code Online (Sandbox Code Playgroud)

linux svn windows diff patch

9
推荐指数
2
解决办法
4076
查看次数

如何在数据库中存储MySQL警告?

我想存储由数据库中的一些SQL语句引起的警告.比如之后

mysql> select 1/0;
+------+
| 1/0  |
+------+
| NULL |
+------+
1 row in set, 1 warning (0.00 sec)

mysql> show warnings;
+-------+------+---------------+
| Level | Code | Message       |
+-------+------+---------------+
| Error | 1365 | Division by 0 |
+-------+------+---------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

我想将SHOW WARNINGS所说的内容保存到某些持久表中,以便将来能够对其进行分析.

让我们假设我知道何时有记录的东西 - 我可以检查一下 @@warning_count > 0.

mysql logging warnings show

7
推荐指数
1
解决办法
1290
查看次数

计算部分总和的 MySQL 查询

我应该在 MySQL 数据库中执行什么查询以获得包含源表部分总和的结果?

例如,当我有桌子时:

Id|Val
1 | 1
2 | 2
3 | 3
4 | 4
Run Code Online (Sandbox Code Playgroud)

我想得到这样的结果:

Id|Val
1 | 1
2 | 3 # 1+2
3 | 6 # 1+2+3
4 | 10 # 1+2+3+4
Run Code Online (Sandbox Code Playgroud)

现在我通过一个包含游标和 while 循环的存储过程得到这个结果。我想找到一种更好的方法来做到这一点。

mysql stored-procedures

2
推荐指数
1
解决办法
1843
查看次数