小编WBA*_*BAR的帖子

MySQL:如何在特定节点中查找叶子

我知道这类问题已经多次发布在这里,例如:Java方式

我在标准树模式的数据(150K +)的大量(id,parent_id,some_data)

问题:如何获取给定node_id的叶子?

表结构:

CREATE TABLE `DATA_TREE` (
  `ID` int(11) NOT NULL,
  `PARENT_ID` int(11) NOT NULL,
  `DATA` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `ID_UNIQUE` (`ID`),
  KEY `fk_DATA_TREE_1_idx` (`PARENT_ID`),
  CONSTRAINT `fk_DATA_TREE_1` FOREIGN KEY (`PARENT_ID`) REFERENCES `DATA_TREE` (`ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf
Run Code Online (Sandbox Code Playgroud)

数据库: MySQL 5.1.61

mysql sql sql-optimization

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

为什么TO_CHAR在数字的开头添加空格(一个白色字符)?

当我根据这段代码准备这个SQL Fiddle时:

WITH l_cur AS
 (SELECT to_char(LEVEL - 1, '0000') dd FROM dual CONNECT BY LEVEL <= 10)
SELECT '''' || d1.dd || '''' o,
       '''' || d2.dd || '''' n
  FROM (SELECT dd,
               row_number() over(ORDER BY 1) rn
          FROM l_cur) d1,
       (SELECT dd,
               row_number() over(ORDER BY dbms_random.random) rn
          FROM l_cur) d2
 WHERE d1.rn = d2.rn;

O       N
------- -------
' 0000' ' 0000'
' 0001' ' 0005'
' 0002' ' 0009'
' 0003' ' 0003'
' 0004' …
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle11g

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

Oracle 11g:在将新TYPE声明为TABLE时,我必须添加"INDEX BY PLS_INTEGER"吗?

添加INDEX BY PLS_INTEGER和不在新表类型声明结束之间的差异是什么.看看这个例子:

DECLARE
    GC_BULK_LIMIT CONSTANT INTEGER := 500;
    CURSOR CUR_CLIENTS IS SELECT C.ID, C.NAME FROM CLIENTS C;
    TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE;
    -- TYPE RT_CLIENTS IS TABLE OF CUR_CLIENTS%ROWTYPE INDEX BY PLS_INTEGER;
    LT_CLIENTS RT_CLIENTS;
BEGIN
    OPEN CUR_CLIENTS;
    LOOP
        FETCH CUR_CLIENTS BULK COLLECT INTO LT_CLIENTS LIMIT GC_BULK_LIMIT;
        EXIT WHEN LT_CLIENTS.COUNT = 0;
        FOR I IN 1..LT_CLIENTS.COUNT LOOP
            -- ... SOME LOGIC
        END LOOP;
    END LOOP;
    CLOSE CUR_CLIENTS;
END;
Run Code Online (Sandbox Code Playgroud)

plsql oracle11g

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

Python日志:FileHandler在模式'w'不工作但在模式'a'工作正常

2.7.5Windows下的python中,当FileHandler处于模式时'w'(在写入之前截断文件)处理程序不会只写入最后一行.在模式下'a'一切都很好.

我的logging.conf档案:

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=NOTSET
handlers=fileHandler

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('generator.log', 'a', 'utf8', 0)

[formatter_simpleFormatter]
format=[ %(asctime)s ] [ %(name)s ] [ %(levelname)-5s ] - %(message)s
datefmt=
Run Code Online (Sandbox Code Playgroud)

我的oracle.py档案:

__author__ = 'wbar'
import cx_Oracle
from contextlib import closing
import logging


class Connector(object):
    __connection__ = None
    __user_name__ = None
    __password__ = None
    __tns_name__ = None
    __logger__ = None

    def get_connection(self, …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

Django Rest Framework:如何序列化列表列表?

如何使用 Django Rest 序列化器序列化浮点数列表?

我的数据是(repr我的对象列表):

[{
    'id': '413',
    'data': [
        [None, 32.33125, None, None],
        [None, 37.96, 48.70112359550562, 66.118],
        [None, None, 58.06576923076923, 77.31023809523809],
        [None, None, None, 110.0075],
        [None, None, None, 139.89]
    ]
}, {
    'id': '406',
    'data': [
        [None, 35.33125, None, None],
        [None, 37.96, 43.123, 66.118],
        [None, None, 58.12, 72,123],
        [None, None, None, 119.000234],
        [None, None, None, 139.89]
    ]
}]
Run Code Online (Sandbox Code Playgroud)

对于尝试提出不同方法的用户,我需要说明我需要序列化程序类,因为我想使用generics.ListAPIView并且需要设置serializer_class属性。

python django django-rest-framework

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

Oracle 11g:在PL/SQL中有没有办法在MERGE DML语句之后获取有关插入和更新行的信息?

我想知道有没有办法在PL/SQL中接收信息已经更新了多少行以及在我的PL/SQL脚本使用MERGE DML语句时插入了多少行.

让我们使用这里描述的Oracle合并示例: 示例 MERGE示例

此功能在我的函数中使用,但我还想记录信息已更新的行数和已插入的行数.

oracle merge plsql dml oracle11g

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

如何通过DBLINK调用DBLINK上的SELECT?

在Oracle 11G中,我可以轻松调用:

SELECT * FROM TABLE@DB_LINK_NAME;
Run Code Online (Sandbox Code Playgroud)

但是如何调用SELECT另一个DB_LINK上的DB_LINK?

像这样的东西:

SELECT * FROM TABLE@REMOTE_DB_LINK_NAME@DB_LINK_NAME;
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

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

Ruby:有点像匿名函数吗?

在JavaScript中我可以做类似的事情:

var foo = function(){
  var a = 5;
  a = a*a;
  return a;
}();
Run Code Online (Sandbox Code Playgroud)

所以我可以定义一次只使用一次的匿名函数.我在尝试,但我的做法是错误的:

foo = {
  a = 5
  a = a*a
  return a
}
#=> SyntaxError: unexpected '\n'...

foo = do
  a = 5
  a = a*a
  a
end
#=> SyntaxError: unexpected keyword_do_block...

foo = {
  a = 5
  a = a*a
  a
}()
#=> SyntaxError: unexpected '\n'...
Run Code Online (Sandbox Code Playgroud)

javascript ruby

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

Model在Manager中没有属性"DoesNotExists"

Django 1.7 Exceptions文档例外.DoesNotExist:

当找不到查询的给定参数的对象时,会引发DoesNotExist异常.Django提供了一个DoesNotExist异常作为每个模型类的属性,以识别无法找到的对象类,并允许您使用try/except捕获特定的模型类.

根据以上文档,我编写了自定义模型管理器:

class CountryManager(models.Manager):
    def get_special(self, *args, **kwargs):
        kwargs.update({'country': settings.ACTIVE_COUNTRY})
        try:
            return self.get(*args, **kwargs)
        except self.model.DoesNotExists:
            self.logger.warning('Unable to find specific object using filter {}'.format(kwargs))
            kwargs.update({'country': settings.DEFAULT_COUNTRY})
            return self.get(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

请注意: 此示例简化了{'country': settings.ACTIVE_COUNTRY}和带的行{'country': settings.DEFAULT_COUNTRY}

class CountryModelMixing(models.Model):
    country = models.CharField(
        max_length=2,
        default=settings.DEFAULT_COUNTRY,
        choices=settings.COUNTRIES,
        verbose_name=_('country')
    )

    objects = CountryManager()

    class Meta:
        abstract=True


class Product(CountryModelMixing):
    name = models.CharField(max_length=40)
Run Code Online (Sandbox Code Playgroud)

在我尝试的代码中:

Product.objects.get_special(name='abc')
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误:

/opt/src/common/managers.py in get_special(self, *args, **kwargs)
     40         try:
     41             return self.get(*args, **kwargs)
---> 42         except …
Run Code Online (Sandbox Code Playgroud)

python django django-orm

0
推荐指数
1
解决办法
2095
查看次数