AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-71361

mvorisek's questions

Martin Hope
mvorisek
Asked: 2023-11-09 01:17:53 +0800 CST

Por que o Oracle Database arredonda números menores que `1e-130`

  • 4

Esse comportamento está documentado em algum lugar e a precisão dupla total pode ser ativada?

consultas de reprodução:

select 1e-130; /* 0.0...1 result */
select 1e-131; /* 0 result */

reprodução online: https://dbfiddle.uk/5uwlkJaB

oracle
  • 1 respostas
  • 35 Views
Martin Hope
mvorisek
Asked: 2023-10-27 21:14:15 +0800 CST

A comparação SQLite dos mesmos tipos de operandos se comporta de maneira diferente

  • 7

Baseado em documentos Sqlite: https://www.sqlite.org/datatype3.html#type_conversions_prior_to_comparison , especialmente esta declaração:

Se um operando tiver afinidade INTEGER, REAL ou NUMERIC e o outro operando tiver TEXT ou BLOB ou nenhuma afinidade então a afinidade NUMERIC será aplicada ao outro operando.

Eu esperaria a seguinte consulta:

CREATE TABLE `invoice` (
  `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  `amount` DOUBLE PRECISION DEFAULT NULL
);

insert into `invoice` (`amount`) values (4.0);
insert into `invoice` (`amount`) values (15.0);
insert into `invoice` (`amount`) values (4.0);

select *,
    typeof(amount), amount = '4',
    typeof(sum(amount)), sum(amount) = '4', sum(amount) = '4.0', sum(amount) = 4
from invoice
group by id;

para retornar o mesmo resultado para sum(amount) = '4'cada amount = '4'linha, pois ambos os tipos de operando têm o mesmo tipo em cada comparação (verificado usando typeof(), para não, SUM()a comparação está funcionando conforme o esperado).

Demonstração: http://sqlfiddle.com/#!5/59238/2

sqlite
  • 2 respostas
  • 108 Views
Martin Hope
mvorisek
Asked: 2022-07-16 13:26:45 +0800 CST

ORA-02270 - o FK no Oracle pode ser definido na coluna VARCHAR2?

  • 0

SQL é mais do que palavras:

CREATE TABLE "currency" ("id" NUMBER(10) NOT NULL,
"currency" VARCHAR2(50) NOT NULL,
"name" VARCHAR2(1020) DEFAULT NULL NULL,
PRIMARY KEY("id"));
CREATE TABLE "user" ("id" NUMBER(10) NOT NULL,
"name" VARCHAR2(1020) DEFAULT NULL NULL,
"currency" VARCHAR2(50) DEFAULT NULL NULL,
PRIMARY KEY("id"));
CREATE UNIQUE INDEX IDX_6956883FFF467AE9 ON "currency" ("currency");
ALTER TABLE "user" ADD CONSTRAINT FK_8D93D6496956883F6956883F695
FOREIGN KEY ("currency") REFERENCES "currency" ("currency");
ORA-02270: nenhuma chave exclusiva ou primária correspondente para esta lista de colunas

reprodução no dbfiddle

Os tipos de coluna são os mesmos e um índice exclusivo é adicionado.

Por que o FK não pode ser adicionado?

oracle oracle-12c
  • 1 respostas
  • 18 Views
Martin Hope
mvorisek
Asked: 2022-05-03 05:13:14 +0800 CST

Especificação do Sqlite: 4.2. Conversões de tipo antes da comparação

  • 0

Baseado em documentos SQLite: https://www.sqlite.org/datatype3.html#type_conversions_prior_to_comparison , especialmente esta declaração:

Se um operando tiver afinidade INTEGER, REAL ou NUMERIC e o outro operando tiver TEXT ou BLOB ou nenhuma afinidade, a afinidade NUMERIC será aplicada ao outro operando.

Eu esperaria a seguinte consulta:

CREATE TABLE t (id integer primary key, str varchar(20));
INSERT INTO t (id, str) VALUES (1, '5'), (2, '5u');

SELECT id, 5 = str, 5 >= str, CAST(5 AS NUMERIC) >= str, CAST(str AS NUMERIC) FROM t;

para retornar 5 >= str= 1para ambas as linhas, pois o operando do lado esquerdo tem afinidade NUMERIC.

Demonstração: http://sqlfiddle.com/#!5/e9c19/4

sqlite sqlite3
  • 1 respostas
  • 23 Views
Martin Hope
mvorisek
Asked: 2020-10-14 14:51:39 +0800 CST

Qual é a diferença entre diferentes agrupamentos binários utf8mb4?

  • 5

Qual é a diferença entre utf8mb4_0900_binvs utf8mb4_binagrupamentos binários?

mysql collation
  • 1 respostas
  • 1211 Views
Martin Hope
mvorisek
Asked: 2019-09-14 14:32:23 +0800 CST

Como alterar o agrupamento padrão para qualquer conjunto de caracteres no MySQL?

  • 0

Como alterar os agrupamentos padrão listados por SHOW CHARACTER SET?

Pois utf8eu preciso alterá-lo para utf8_unicode_ci.

Ou existe algum switch para impor o _unicode_ciover _general_cipara qualquer charsets UTF8xx?

mysql
  • 1 respostas
  • 99 Views
Martin Hope
mvorisek
Asked: 2016-09-08 00:46:00 +0800 CST

É possível escrever (A OU B) IN(X, Y, ..., W)?

  • 2

É possível escrever (A OU B) IN(X, Y, ..., W) ?

Eu preciso preencher dois IN()expr. com os mesmos valores à mão. Curti:

A IN(X, Y, ..., W) OR B IN(X, Y, ..., W)

Qual a melhor opção para ter apenas um IN()para preencher?

mysql syntax
  • 1 respostas
  • 765 Views
Martin Hope
mvorisek
Asked: 2016-02-10 05:40:14 +0800 CST

Identificador de transação - possível com o MySQL?

  • 1

Eu tenho um código bastante complexo, que no início inicia a transação. Depois disso, várias consultas do usuário são realizadas (mais ou menos sem meu controle) e no final a transação é confirmada se tudo correr bem.

O que eu preciso é detectar se a conexão no final ainda está dentro da mesma transação , pois o código do usuário pode consultar o commit/rollback e iniciar uma nova transação.

Qual é a prática da indústria para isso? O banco de dados MySQL pode retornar algum tíquete/ID de transação? Ou a variável de transação de armazenamento MySQL apenas, que será detectável após a confirmação/reversão?

mysql mysql-5.6
  • 2 respostas
  • 3234 Views
Martin Hope
mvorisek
Asked: 2015-08-12 10:04:15 +0800 CST

Como posso forçar o MySQL a IGNORAR TODOS os índices?

  • 13

Eu li artigos sobre FORCEíndice, mas como posso forçar o MySQL a IGNORE ALLindexar?

Eu tentei SELECT * FROM tbl IGNORE INDEX(*), mas não tive sucesso.

Quanto ao motivo pelo qual eu (e outros) preciso fazer isso: Por exemplo, eu precisava resumir as estatísticas de referenciadores por tld assim:

SELECT 
    count(*) as c, 
    SUBSTRING
    (
        domain_name, 
        LENGTH(domain_name) - LOCATE('.', REVERSE(domain_name)) + 2
    ) as tld
FROM `domains_import` 
    IGNORE INDEX(domain_name)
GROUP BY tld
ORDER BY c desc
LIMIT 100

...mas sempre tenho que ver quais índices estão definidos ou determinar qual índice será usado via Explicar. Seria muito útil simplesmente escrever IGNORE INDEX ALLe simplesmente não se importar.

Alguém sabe a sintaxe ou um hack? (Dezenas de linhas via tabelas de definição do MySQL não são realmente um atalho).

Adicionado da discussão do bate -papo :

Marca de referência:

  • sem índice = 148,5 segundos

  • com índice = 180 segundos e ainda rodando com Enviando dados A matriz SSD é tão poderosa que você quase não se importa com o cache de dados...

Definição para benchmark:

CREATE TABLE IF NOT EXISTS `domains_import` (
`domain_id` bigint(20) unsigned NOT NULL,
`domain_name` varchar(253) CHARACTER SET ascii COLLATE ascii_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `domains_import`
ADD PRIMARY KEY (`domain_id`),
ADD UNIQUE KEY `domain_name` (`domain_name`);

ALTER TABLE `domains_import`
MODIFY `domain_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT;

InnoDB, o teste com índice (sem USE INDEX() ou similar) ainda está em execução, 250 segundos, acabei de matá-lo.

mysql index
  • 3 respostas
  • 20309 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve