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 / dba / 问题

All perguntas(dba)

Martin Hope
Christine K
Asked: 2024-01-17 15:17:15 +0800 CST

Ajuda com sintaxe CTE em SQL

  • 9

Sou novo em SQL, tentei criar um CTE, mas recebo um rabisco vermelho embaixo do AS e recebo uma mensagem de erro no processo de execução da sintaxe:

Msg 102, Nível 15, Estado 1, Linha 117 Sintaxe incorreta próxima a ')'.

Esta é a sintaxe SQL, qualquer ajuda seria ótima:

WITH CTE_Grand_Harvest_Total AS (
SELECT 
    zardi, COUNT(zardi) AS Count_ZARDI, SUM(Weight) AS Sum_Weight, Total_Harvest, Total_Harvest*COUNT(zardi)*SUM(Weight) AS Grand_Total
FROM 
    S1_PH_CROPS_clean_final_minus_money_matters
WHERE  
    Work.dbo.S1_PH_CROPS_clean_final_minus_money_matters.cropNamePH = 'Maize'
GROUP BY 
    Total_Harvest, zardi
)
sql-server
  • 1 respostas
  • 177 Views
Martin Hope
VIAGC
Asked: 2024-01-17 13:27:28 +0800 CST

Computando hashes no PostgreSQL para colunas JSONB

  • 5

Dos documentos do PostgreSQL :

jsonbnão preserva espaços em branco, não preserva a ordem das chaves dos objetos e não mantém chaves de objetos duplicadas. Se chaves duplicadas forem especificadas na entrada, apenas o último valor será mantido.

Eu tenho uma jsonbcoluna que contém alguns dados. Eu extraio dados-chave específicos (que também são json) e faço hash usando sha256, algo como:

SELECT sha256(to_jsonb(rule_element) :: TEXT :: BYTEA);

Onde rule_elementfoi extraído dos dados originais. Dado que não mantém a ordem das chaves e a coluna original jsonbpode ser atualizada no futuro, não creio que seja seguro calcular hashes, pois eles podem mudar.

Posso calcular hashes consistentes para jsonbcolunas? (99% de certeza que não pode, 1% espera facilitar meu trabalho)

Os hashes seriam usados ​​para fins de identificação única, atuando basicamente como uma chave única para diferentes tipos de composições JSON.

postgresql
  • 1 respostas
  • 48 Views
Martin Hope
Shahab Mohd
Asked: 2024-01-17 12:40:13 +0800 CST

Adicione valores e junte linhas sob condição em uma consulta Mysql

  • 6

Eu tenho uma tabela com dados de tempo de entrada/tempo limite em uma estrutura conforme mostrado abaixo.

eu ia data em vez tempo esgotado duração
3 02/01/2024 01:00 02:00 01:00
3 02/01/2024 02:30 07:00 04:30
3 02/01/2024 09:00 09:10 00:10
3 02/01/2024 09:10 09:30 00:20
3 02/01/2024 12:00 12:25 00:25

As posições de tempo com duração inferior a 30 minutos não devem ser consideradas para cálculo. entretanto, se dois intervalos consecutivos em um dia forem maiores ou iguais a 30 minutos, isso deverá ser considerado. como no exemplo acima, o tempo limite da linha 3 é igual ao tempo limite da linha 4 09:00-09:10/09:1--09:30. são considerados como tempo único e devem ser somados se o tempo total for superior a 30 minutos. Eu criei a seguinte consulta para obter a duração total do dia, excluindo durações inferiores a 30 minutos, mas não incluindo a duração do tempo conforme explicado acima.

SELECT
    DATE,  TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(duration))),'%H:%i' ) AS total,
    SUM(TIME_TO_SEC(duration)) AS seconds
FROM
    `timeintable`
WHERE
    id = '3' AND( DATE BETWEEN '2024-01-01' AND '2024-01-10') AND(TIME_TO_SEC(duration) >= 1800)
GROUP BY
    DATE
ORDER BY
    DATE ASC

É possível conseguir o mesmo por meio de consulta SQL em vez de loop de array php? Minha tentativa de usar funções LEAD/LAG não teve êxito.

mysql
  • 1 respostas
  • 41 Views
Martin Hope
DarkLlama
Asked: 2024-01-17 02:36:00 +0800 CST

As tabelas MySQL foram descartadas aleatoriamente, mas os arquivos .ibd ainda existem

  • 6

Eu tenho um servidor de banco de dados para um projeto paralelo e um dia entre um período de desligamento do servidor - três tabelas foram descartadas aleatoriamente. Mas os arquivos .ibd dessas tabelas ainda existem. Também não há nada nos logs de erros.

O que aconteceu? Os únicos usuários com permissões de drop são o usuário root e o usuário do phpmyadmin. E o servidor é um servidor somente LAN, sem acesso externo à Internet.

É possível restaurar as tabelas dos arquivos .ibd? Não adicionei novas tabelas nem inseri novas linhas desde então. Estou executando o MySQl 8, portanto nenhum arquivo .frm está disponível.

mysql
  • 1 respostas
  • 24 Views
Martin Hope
kichma
Asked: 2024-01-16 22:09:30 +0800 CST

postrges na atualização de conflito com todas as colunas como restrição única

  • 6

Eu tenho uma tabela com colunas 'id', 'a', 'b, 'c', 'd'. Além disso, tenho uma restrição exclusiva em ('a', 'b', 'c', 'd') para que nenhuma entrada possa ser adicionada onde todos esses campos sejam iguais. Quero atualizar as entradas, por exemplo, tenho no banco de dados:

1 a_value b_value c_value d_value

e eu estou perturbando

   INSERT INTO MYTABLE(a, b, c, d) values ('a_value', 'b_value', 'c_value', 'd_value__new') on conflict (a, b, c, d) DO UPDATE SET d= excluded.d;

Mas isso cria uma nova entrada quando eu esperava que atualizasse d_value para d_value_new na entrada existente. O que estou fazendo de errado?

Veja exemplo aqui:

https://dbfiddle.uk/nL7fRpt_

postgresql
  • 1 respostas
  • 42 Views
Martin Hope
Govind Patil
Asked: 2024-01-16 20:37:56 +0800 CST

Como obter o valor da variável na função PostgreSQL em uma instrução SQL

  • 5

Estou definindo um parâmetro com

DEFINIR app.id para:appId;

Criar função get_car_Price(Price_from int, Price_to int)
retorna
linguagem int plpgsql
como
$$
Declare
Car_count inteiro;
Comece
RAISE NOTICE '%', current_setting('appId', true); Fim;
$$;

postgresql
  • 1 respostas
  • 32 Views
Martin Hope
James Hay
Asked: 2024-01-16 19:39:32 +0800 CST

Existe uma penalidade de desempenho para violações de restrições de chave exclusivas no Postgres?

  • 7

Na minha API, o usuário pode enviar uma solicitação que tenta criar uma nova linha quando existe uma linha com essa chave exclusiva.

Atualmente, estou detectando o erro de chave exclusiva e retornando uma mensagem informando que X já existe. Mas é mais eficiente pesquisar a linha primeiro (na mesma conexão) e executar a instrução INSERT apenas se essa linha não existir?

Minha intuição diz que ler o erro do Postgres deveria ser mais eficiente, mas gostaria de ter certeza de que estou fazendo as coisas de maneira idiomática.

Postgres é a versão 12

postgresql
  • 3 respostas
  • 457 Views
Martin Hope
Tony Stephens
Asked: 2024-01-16 10:59:04 +0800 CST

Criando um Trigger no MySQL que possui um JOIN

  • 8

PROBLEMA: Estou tentando criar um TRIGGER que irá copiar registros de 2 tabelas diferentes ( usuários , endereços ) no banco de dados A para uma única tabela ( usuários ) no banco de dados B.

Basicamente, estou tentando consolidar dados em uma única tabela em um banco de dados diferente.

Eu tenho o seguinte TRIGGER

CREATE TRIGGER `Copy db1_user to db2_users` 
AFTER INSERT ON `user`
FOR EACH ROW 
BEGIN 
    INSERT INTO database2.users(user_id, user_email, user_firstname, user_lastname) 
        VALUES (NEW.user_id, NEW.email, NEW.first_name, NEW.last_name);
END

O procedimento acima funciona bem, onde eu dobro meu cérebro para obter o outro pedaço de dados da tabela de endereços. Criei um diagrama do que estou tentando alcançar, espero que faça sentido. Ah, ele também precisa ter certeza de que o user_id ainda não existe na tabela de destino, o que não deveria acontecer, pois o campo user_id na tabela de origem é AUTO INCREMENT.

Diagrama de TRIGGER

Minha outra pergunta é: como as duas tabelas de origem são gravadas em momentos ligeiramente diferentes, não tenho certeza de onde disparar esse TRIGGER. Se eu ativá-lo AFTER INSERT na tabela (usuários), a tabela (endereços) já terá sido gravada? Não tenho certeza - não é meu código (é um aplicativo WordPress que estou analisando), então qualquer conselho sobre onde manter esse TRIGGER seria ótimo.

Sugestões ou assistência seriam muito apreciadas.

mysql
  • 1 respostas
  • 208 Views
Martin Hope
Racer SQL
Asked: 2024-01-16 10:54:40 +0800 CST

Qual seria uma boa estratégia para um banco de dados de 5 TB e manutenção de índice?

  • 4

Usamos manutenção de índice ollas com algumas alterações aqui e ali feitas por nossa equipe.

geralmente temos um problema com um banco de dados enorme onde seu índice Alter bloqueia alguns processos. Normalmente é uma reorganização, mesmo que bloqueie algumas tarefas, como bulks por exemplo.

o que podemos fazer para minimizar isso? nob funciona por mais de 24 horas todos os domingos.

Pensei em dividir tabelas, e fazer manutenção de índices em finais de semana separados.

Pensei em um alerta onde isso interromperia o trabalho daquele bloqueio por X minutos (ruim, pois tenho certeza de que nunca será concluído).

index
  • 1 respostas
  • 41 Views
Martin Hope
Curtis Spencer
Asked: 2024-01-16 08:22:35 +0800 CST

Erro fatal 1408 ao instalar o mariadb-server / mariadb-upgrade

  • 6

Recentemente atualizei meu servidor Debian 10 executando MySQL 5.7 para Debian 11 e MariaDB 10.3. Essa atualização ocorreu sem problemas. Decidi então atualizar para o Debian 12 e MariaDB 10.11. Ao realizar essa atualização, encontrei um problema com o mariadb-server:

Setting up mariadb-server (1:10.11.4-1~deb12u1) ...
dpkg: error processing package mariadb-server (--configure):
 installed mariadb-server package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.11.2-2) ...
Processing triggers for libc-bin (2.36-9+deb12u3) ...
Errors were encountered while processing:
 mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Executei novamente apt install mariadb-servere recebi o mesmo erro. Eu então corri apt install -fe dpkg --configure -aambos retornaram o mesmo erro também.

Em seguida, executei apt purge mariadb-servere tentei reinstalar apt install mariadb-servere obtive o mesmo erro acima.

Parece que a instalação em si foi bem-sucedida, pois consegui executar systemctl start mariadbpara poder executar mariadb-upgrade, mas falhou em parte:

Phase 4/7: Running 'mysql_fix_privilege_tables'
ERROR 1408 (HY000) at line 429: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
FATAL ERROR: Upgrade failed

Como mariadb_upgrade é executado como parte do processo de instalação, presumo que seja isso que está falhando, mas não tenho certeza.

Verificando /var/log/mysql/error.log, vejo o seguinte:

2024-01-15 15:29:32 0 [Note] Starting MariaDB 10.11.4-MariaDB-1~deb12u1 source revision  as process 189707
2024-01-15 15:29:32 0 [Note] InnoDB: Compressed tables use zlib 1.2.13
2024-01-15 15:29:32 0 [Note] InnoDB: Using transactional memory
2024-01-15 15:29:32 0 [Note] InnoDB: Number of transaction pools: 1
2024-01-15 15:29:32 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-01-15 15:29:32 0 [Note] InnoDB: Using liburing
2024-01-15 15:29:32 0 [Note] InnoDB: Initializing buffer pool, total size = 256.000GiB, chunk size = 4.000GiB
2024-01-15 15:29:33 0 [Note] InnoDB: Completed initialization of buffer pool
2024-01-15 15:29:33 0 [Note] InnoDB: Buffered log writes (block size=512 bytes)
2024-01-15 15:29:34 0 [Note] InnoDB: 128 rollback segments are active.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Cannot open datafile for read-only: './run_dev/#sql2-7c6-43166.ibd' OS error: 71
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Could not find a valid tablespace file for run_dev/#sql2-7c6-43166. Please refer to https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue.
2024-01-15 15:29:34 0 [Warning] InnoDB: Ignoring tablespace for run_dev/#sql2-7c6-43166 because it could not be opened.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Cannot open datafile for read-only: './tmp/#sql2fb_6c47_15.ibd' OS error: 71
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Could not find a valid tablespace file for tmp/#sql2fb_6c47_15. Please refer to https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue.
2024-01-15 15:29:34 0 [Warning] InnoDB: Ignoring tablespace for tmp/#sql2fb_6c47_15 because it could not be opened.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Cannot open datafile for read-only: './tmp/#sql70b1_76eb_0.ibd' OS error: 71
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Could not find a valid tablespace file for tmp/#sql70b1_76eb_0. Please refer to https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue.
2024-01-15 15:29:34 0 [Warning] InnoDB: Ignoring tablespace for tmp/#sql70b1_76eb_0 because it could not be opened.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Cannot open datafile for read-only: './tmp/#sql70b1_76eb_1.ibd' OS error: 71
2024-01-15 15:29:34 0 [ERROR] InnoDB: Operating system error number 2 in a file operation.
2024-01-15 15:29:34 0 [ERROR] InnoDB: Error number 2 means 'No such file or directory'
2024-01-15 15:29:34 0 [Note] InnoDB: Some operating system error numbers are described at https://mariadb.com/kb/en/library/operating-system-error-codes/
2024-01-15 15:29:34 0 [ERROR] InnoDB: Could not find a valid tablespace file for tmp/#sql70b1_76eb_1. Please refer to https://mariadb.com/kb/en/innodb-data-dictionary-troubleshooting/ for how to resolve the issue.
2024-01-15 15:29:34 0 [Warning] InnoDB: Ignoring tablespace for tmp/#sql70b1_76eb_1 because it could not be opened.
2024-01-15 15:29:34 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
2024-01-15 15:29:34 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
2024-01-15 15:29:34 0 [Note] InnoDB: log sequence number 522161950055957; transaction id 14113259426
2024-01-15 15:29:34 0 [Note] InnoDB: Loading buffer pool(s) from /sas/mysql/ib_buffer_pool
2024-01-15 15:29:34 0 [Warning] 'innodb-file-format' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-buffer-pool-instances' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-log-files-in-group' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-file-format' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-buffer-pool-instances' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-log-files-in-group' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-file-format' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-buffer-pool-instances' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Warning] 'innodb-log-files-in-group' was removed. It does nothing now and exists only for compatibility with old my.cnf files.
2024-01-15 15:29:34 0 [Note] Server socket created on IP: '0.0.0.0'.
2024-01-15 15:29:34 0 [Note] Server socket created on IP: '::'.
2024-01-15 15:29:34 0 [ERROR] Incorrect definition of table mysql.event: expected the type of column 'time_zone' at position 17 to have character set 'latin1' but found character set 'utf8mb3'.
2024-01-15 15:29:34 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
2024-01-15 15:29:34 0 [Note] /usr/sbin/mariadbd: ready for connections.
  1. Como faço para que a instalação do mariadb_upgrade / maraidb-server funcione?
  2. O que devo fazer com os espaços de tabela ignorados mencionados no log de erros?

Obrigado!

mariadb
  • 1 respostas
  • 63 Views
Prev
Próximo

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