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
Eb9y
Asked: 2023-10-15 00:57:48 +0800 CST

minha senha do cliente de linha de comando mysql continua mudando automaticamente. não uso há algumas semanas e ele muda a senha, por que isso acontece?

  • 6
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migraram ontem .

Sou novo no mysql e quando não uso por alguns dias ele altera a senha de alguma forma, por conta própria. tive que reinstalá-lo tantas vezes e isso acontece a cada poucas semanas. por que isso acontece e como posso consertar isso?

Tentei reinstalá-lo várias vezes, funciona no começo e depois muda a senha sozinho depois de alguns dias.

sistema operacional: windows 10 pro. versão mysql: 8.0

mysql
  • 2 respostas
  • 358 Views
Martin Hope
Santi
Asked: 2023-10-13 21:42:18 +0800 CST

Como projetar um relacionamento um-para-um que pode ser um-para-(pai) ou um-para-(filho)?

  • 5

Estou criando um site onde as pessoas podem avaliar/avaliar bebidas alcoólicas ("Destilados"). Dado que algumas bebidas destiladas podem variar muito de garrafa para garrafa, gostaria que os usuários tivessem a opção de revisar a bebida em si ou optar por revisar uma garrafa específica dessa bebida.

Considere as tabelas (SQL Server) abaixo:

Spirits
+--------+------------------+
| Column | Type             |
+--------+------------------+
| Id     | uniqueidentifier |
| Name   | nvarchar(255)    |
+--------+------------------+

Bottles
+----------+------------------+
| Column   | Type             |
+----------+------------------+
| Id       | uniqueidentifier |
| SpiritId | uniqueidentifier |
+----------+------------------+

Ratings
+----------+------------------------+
| Column   | Type                   |
+----------+------------------------+
| Id       | uniqueidentifier       |
| SpiritId | uniqueidentifier       |
| BottleId | uniqueidentifier, null |
| Score    | int                    |
+----------+------------------------+

Estou me aproximando da Ratingsmesa corretamente? Em caso afirmativo, como faço para garantir que BottleIdé filho de SpiritId?

Ou devo require SpiritId or BottleId , mas não ambos (e existe uma maneira de impor esse requisito no banco de dados?)

Tenho certeza de que uma pergunta como essa foi feita, mas estou tendo problemas suficientes para formulá-la sozinho, portanto, minhas tentativas de pesquisa não produziram nada de útil. Obrigado.

sql-server
  • 2 respostas
  • 29 Views
Martin Hope
datascinalyst
Asked: 2023-10-13 18:53:17 +0800 CST

ORA-19914: não é possível criptografar o backup e ORA-28365: a carteira não está aberta

  • 5

Tenho feito backup do meu banco de dados diariamente e, por algum motivo, de repente recebi este erro

ORA-19914: unable to encrypt backup ORA-28365: wallet is not open

esta é a configuração de criptografia atual do meu banco de dados: SELECT STATUS FROM V$ENCRYPTION_WALLET;

STATUS
------------------------------
NOT_AVAILABLE
oracle
  • 1 respostas
  • 39 Views
Martin Hope
variable
Asked: 2023-10-13 18:29:24 +0800 CST

Como realizar a avaliação de vulnerabilidade SQL no SSMS 19.1 em diante?

  • 6

Estou usando a edição empresarial SQL 2022 local.

A opção de avaliação de vulnerabilidade SQL foi retirada do SSMS 19.1 em diante.

Estou lendo que esse recurso agora faz parte do Defender for Cloud.

Se alguém já tentou isso, é grátis? E preciso pedir ao administrador do Azure para configurar o defensor para a nuvem agora apenas para poder fazer a avaliação de vulnerabilidade do SQL?

sql-server
  • 1 respostas
  • 95 Views
Martin Hope
Mr.spark
Asked: 2023-10-13 08:49:43 +0800 CST

problema de replicação do SQL Server

  • 5

Minha versão do SQL Server é 2012 R2. Tenho uma editora com várias publicações, uma máquina de distribuição e várias máquinas de assinatura. Tudo está funcionando bem.
No entanto, quando tento adicionar uma nova assinatura em um dos editores (o tamanho deste banco de dados é próximo a 150 GB) e inicio o agente para criar um instantâneo, recebo a seguinte mensagem de erro quando atinge 99%, com base nas informações fornecidas, há algumas indicações de timeouts de consulta.
Verifiquei a configuração: Propriedade -> Conexão -> Valor de tempo limite de consulta remota 0, o que significa que não há limite para a duração das consultas remotas. por favor avise, obrigado a todos!

Error Message: 
Message: A transport-level error occurred when sending the request to the server. (provider: TCP Provider, error: 0 - The remote host forcibly closed an existing connection.) 
Command Text: sp_MSget_synctran_commands Parameters: @publication = xxxx_publish

Stack: 
at Microsoft.SqlServer.Replication.AgentCore.ReMapSqlException(SqlException e, SqlCommand command) 
at Microsoft.SqlServer.Replication.AgentCore.AgentExecuteReader(SqlCommand command, Int32 queryTimeout, CommandBehavior commandBehavior) 
at Microsoft.SqlServer.Replication.AgentCore.ExecuteWithOptionalResults(CommandSetupDelegate commandSetupDelegate, ProcessResultsDelegate processResultsDelegate, Int32 queryTimeout, CommandBehavior commandBehavior) 
at Microsoft.SqlServer.Replication.AgentCore.ExecuteWithOptionalResults(CommandSetupDelegate commandSetupDelegate, ProcessResultsDelegate processResultsDelegate) 
at Microsoft.SqlServer.Replication.Snapshot.TransSnapshotCommandManager.AddSyncTranCommands() 
at Microsoft.SqlServer.Replication.Snapshot.TransSnapshotCommandManager.AddSnapshotCommands() 
at Microsoft.SqlServer.Replication.Snapshot.TransSnapshotProvider.AddTransCommandsAndSetArticleTranIDTransaction(SqlConnection connection) 
at Microsoft.SqlServer.Replication.RetryableSqlServerTransactionManager.ExecuteTransaction(Boolean bLeaveTransactionOpen) 
at Microsoft.SqlServer.Replication.Snapshot.TransSnapshotProvider.DoConcurrentPostArticleFilesGenerationProcessing() 
at Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot() 
at Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun() 
at Microsoft.SqlServer.Replication.AgentCore.Run() (Source: MSSQLServer, Error Number: 10054) Get Help: http://help/10054 
Server xxxx, Level 20, State 0, Line 0 
A transport-level error occurred when sending the request to the server. (provider: TCP Provider, error: 0 - The remote host forcibly closed an existing connection.) (Source: MSSQLServer, Error Number: 10054)
sql-server
  • 1 respostas
  • 85 Views
Martin Hope
Don
Asked: 2023-10-13 01:36:11 +0800 CST

Desenvolvedor com SQLAgentUserRole só tem acesso de visualização

  • 5

Tenho um desenvolvedor que precisa criar trabalhos no SQL Server Agent. Eles fazem parte do grupo de segurança SQLDA e concedi esse grupo SQLAgentUserRole no msdb. Eles ainda têm acesso somente para visualização. Também preciso conceder a eles db_datawriter no msdb para que eles possam criar empregos?

Executando o SQLServer 2019. As permissões são gerenciadas por meio de grupos do Active Directory.

insira a descrição da imagem aqui

sql-server
  • 1 respostas
  • 28 Views
Martin Hope
kanders84152
Asked: 2023-10-13 01:27:12 +0800 CST

No Postgres, como posso recuperar as N linhas principais de cada partição de classificação sem classificar a tabela inteira?

  • 7

Resumo

Tenho uma tabela com fontes de eventos e uma tabela com eventos. Preciso de uma consulta que me forneça os Neventos mais recentes de cada fonte ( Nestá entre 1 e 100). Atualmente, estou fazendo isso com uma subconsulta que executa uma ROW_NUMBER() OVER (PARTITION BY "EventSourceId" ORDER BY ...) as rankRecentconsulta externa que filtra WHERE rankRecent <= @N.

Os EXPLAIN ANALYZEresultados dizem que ele está usando meu índice para as cláusulas partitione order by, mas ainda está classificando a tabela inteira e aparentemente esperando encontrar 6 milhões de resultados, mas existem apenas 22 mil. Estou tentando descobrir se existe: (1) uma maneira melhor de obter os Neventos mais recentes para cada fonte de evento ou (2) uma maneira de sugerir ao planejador de consultas que ele não precisa classificar estritamente a maioria dos tabela, pois apenas as primeiras entradas serão usadas.

Além disso, há um segundo caso de uso para a consulta que nem sei como começar a indexar. Esse não é o cerne desta questão; Menciono-o apenas no interesse de incluir tudo o que possa ser relevante.

Detalhes

Configuração de dados

CREATE TABLE "EventSources"
(
    "Id" uuid NOT NULL,
    "Name" character varying(100),
    CONSTRAINT "PK_EventSources" PRIMARY KEY ("Id")
);

CREATE TABLE "Events"
(
    "Id" uuid NOT NULL,
    "EventSourceId" uuid NOT NULL,
    "Time" timestamp with time zone,
    "AltKey" character varying(100),
    CONSTRAINT "PK_Events" PRIMARY KEY ("Id"),
    CONSTRAINT "FK_Events_EventSources_EventSourceId" FOREIGN KEY ("EventSourceId") REFERENCES "EventSources" ("Id") MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT
);

CREATE INDEX "IX_Events_EventSourceId_Time_Desc_AltKey_Desc" ON "Events" USING btree
(
    "EventSourceId" ASC,
    "Time" DESC NULLS LAST,
    "AltKey" DESC NULLS LAST
);

Algumas informações adicionais possivelmente relevantes:

SELECT version(); --PostgreSQL 13.12, compiled by Visual C++ build 1914, 64-bit
SELECT COUNT(*) FROM "EventSources"; --29,000ish
SELECT COUNT(*) FROM "Events"; --20,000,000ish
SELECT COUNT(*) FROM (SELECT DISTINCT "EventSourceId" FROM "Events") sub; --5,000ish. Most of the "EventSources" don't have "Events" but are used for other things in the db

A pergunta

Aqui está a consulta que estou tentando otimizar:

SELECT
    *
FROM
    (
        SELECT
            "Events".*,
            ROW_NUMBER() OVER (
                PARTITION BY "Events"."EventSourceId"
                ORDER BY
                    "Events"."Time" DESC NULLS LAST,
                    "Events"."AltKey" DESC NULLS LAST
            ) as rankRecent
        FROM
            "Events"
        --WHERE "Events"."Time" < @LimitTime
    ) sub
WHERE
    rankRecent <= @N; -- @N is in the range 1 to 100.

Casos de uso

Aqui estão os casos de uso para a consulta:

  1. Estou carregando um painel que exibe cálculos agregados de dados recentes para cada fonte de evento e, com base nesses cálculos, escolhe quais fontes de eventos serão exibidas e em qual ordem.
  2. Estou investigando um problema que aconteceu ontem às 3h14min15s da manhã e, para uma determinada coleção de fontes de eventos relevantes, preciso ver os 100 eventos que levaram a esse horário para poder ver o que pode ter acontecido. estava dando errado. Neste caso, a WHEREcláusula comentada na consulta será descomentada, podendo também se unir a outra tabela para filtrar fontes de eventos relacionadas a um determinado contexto. Não tenho ideia de como indexar isso, mas esse não é o cerne da questão.

Explicar

Aqui está o resultado de EXPLAIN (ANALYZE, BUFFERS, SETTINGS)(neste caso, @Nfoi definido como 5):

  • Verificação de subconsulta em sub (custo = 0,56..2637123,43 linhas = 6664000 largura = 66) (tempo real = 0,156..90245,642 linhas = 22613 loops = 1)
    • Filtro: (sub.rankrecent <= 5)
    • Linhas removidas pelo filtro: 19963368
    • Buffers: hit compartilhado=6738934 lido=13332278
    • -> WindowAgg (custo = 0,56..2387223,43 linhas = 19992000 largura = 66) (tempo real = 0,155..89355,268 linhas = 19985981 loops = 1)
      • Buffers: hit compartilhado=6738934 lido=13332278
        • -> Varredura de índice usando "IX_Events_EventSourceId_Time_Desc_AltKey_Desc" em "Eventos" (custo = 0,56..1987383,43 linhas = 19992000 largura = 58) (tempo real = 0,100..82274,745 linhas = 19985981 loops = 1)
          • Buffers: hit compartilhado=6738934 lido=13332278
  • Tempo de planejamento: 0,111 ms
  • Tempo de execução: 90247,357ms

Abordagens alternativas que considerei

  1. Considerei usar uma visão materializada para fazer o trabalho pesado de antemão. No entanto, a "Events"tabela terá dados inseridos cerca de uma dúzia de vezes por segundo, e cada transação pode conter de zero a algumas dezenas de linhas. Portanto, se a visualização usar o mesmo plano de consulta que a consulta existente, os dados na visualização ficarão totalmente desatualizados antes que um comando para atualizar a visualização possa ser concluído. Então concluí que não fazia sentido essa estratégia.
  2. Também considerei tentar adicionar uma nova sequencecoluna inteira na "Events"tabela e depois filtrar nessa sequência. Mas isso realmente não resolve o problema. Cada transação que insere eventos pode ou não ter eventos para uma determinada fonte de eventos, portanto, os 5 eventos mais recentes para uma determinada fonte de eventos podem incluir dados de, por exemplo, uma transação de 5 segundos atrás e uma transação de uma hora atrás. , e um de ontem e um da semana passada e um do ano passado. Portanto, não há uma maneira fácil de sincronizar isso sequenceentre milhares de fontes de eventos diferentes. Além disso, é possível que uma fonte de eventos envie manualmente dados que foram perdidos em um momento arbitrário no passado, portanto, a classificação "Time"parece estar correta.
  3. Considerei ter uma tabela que monitorasse apenas, digamos, os 50 eventos mais recentes para cada fonte de evento e descartasse qualquer coisa mais antiga. Dessa forma, a consulta poderia prosseguir e classificar a tabela inteira, pois não haveria tantos dados para classificar. No entanto, a consulta não satisfaria mais o Caso de Uso nº 2; e, embora o caso de uso nº 2 não seja o objetivo desta questão, não posso simplesmente removê-lo da consulta sem fornecer um substituto.

Esclarecimento

A row_number over partitionquestão é a questão principal aqui. O material sobre o Caso de Uso nº 2 e não saber como indexá-lo está incluído aqui, caso inspire alguém a realizar um plano, consulta ou esquema melhor; Não estou esperando uma solução para isso, apenas quero incluir qualquer informação que possa ser relevante.

postgresql
  • 1 respostas
  • 96 Views
Martin Hope
Steve Wu
Asked: 2023-10-12 10:54:06 +0800 CST

Por que o binlog do MySQL contém apenas um registro: rotação de log

  • 8

Uma das minhas instâncias escravas do mysql contém vários arquivos de log binários incomuns

  • mysql-bin.023896 250,01 MB 2023-10-11 08:30:06.478997000 (última modificação)
  • mysql-bin.023897 2,27 GB 2023-10-11 11:27:23.128550000
  • mysql-bin.023898 15,67 MB 11/10/2023 11:27:23.261558000
  • mysql-bin.023899 281Bytes 11/10/2023 11:27:24.967536000
  • mysql-bin.023900 250,01 MB 2023-10-11 12:26:16.466269000

Por normal, quero dizer que o tamanho deve ser 250 MB (max_binlog_size é 250 MB), mas mysql-bin.023897contém 2,27 GB, e o subsequente é 15,67 MB, então o próximo é mysql-bin.023899ridiculamente pequeno, seu tamanho é de apenas centenas de bytes...

O conteúdo de mysql-bin.023899não diz nada além de que o mysql gravará logs binários emmysql-bin.023900

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#231011  3:25:16 server id 1630115779  end_log_pos 123 CRC32 0x29f40f84 Start: binlog v 4, server v 5.7.26-log created 231011  3:25:16
BINLOG '
HKUlZQ/DlylhdwAAAHsAAAAAAAQANS43LjI2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AYQP9Ck=
'/*!*/;
# at 123
#231011  3:25:16 server id 1630115779  end_log_pos 234 CRC32 0x0acbf66f Previous-GTIDs
# ac711cc5-2cff-11ed-82c4-5c6f69e9b080:1-7268,
# ef8421a8-2cf4-11ed-9afa-5c6f69e75ed0:117-1391824263
# at 234
#231011  3:25:16 server id 1630115779  end_log_pos 281 CRC32 0x23f57343 Rotate to mysql-bin.023900  pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

Questões

  1. Por que o tamanho do binlog aumenta para 2,27 GB de repente e diminui para 15,67 MB, 281 Bytes posteriormente? O conteúdo de mysql-bin.023897 mostra que ele contém uma grande transação. Essa poderia ser a causa raiz?

  2. Não seria bobagem o MySQL registrar apenas um evento de rotação em mysql-bin.023899 e pular para o próximo arquivo binlog? Por que o MySQL está fazendo isso?

mysql
  • 1 respostas
  • 282 Views
Martin Hope
James
Asked: 2023-10-12 05:26:26 +0800 CST

Como compactar dados no SQL Server? Os dados brutos do data warehouse são muitas vezes maiores que o banco de dados MySQL OLTP para as mesmas tabelas

  • 5
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migrado há 4 dias .

Para fins de relatórios, temos um DWH (data warehouse) fazendo ETLs (extract-transform-load) para recuperar dados de tabelas selecionadas em um banco de dados OLTP (on-line transaction processing) de produção.

O ETL extrai os dados de maneira incremental, portanto, busca apenas a parte alterada dos dados. Provisoriamente, acreditamos que isso não deve afetar o tamanho dos dados.

É um mapeamento simples, portanto para as tabelas selecionadas, o DWH possui as mesmas colunas do OLTP. O DWH é SQL Server e o banco de dados OLTP é MySQL. É claro que os tipos de dados MySQL precisam ser traduzidos para tipos correspondentes no contexto do SQL Server, e seguimos o padrão no Microsoft SSMA (SQL Server Migration Assistant) .

Percebemos que os dados ficaram vezes maiores no SQL Server do que no MySQL. Por exemplo, em um aplicativo de comércio eletrônico Magento:

  • A sales_ordertabela contém 7'100'000linhas com tamanho 5.5GB.
  • Porém, no data warehouse, a mesma tabela é dimensionada 20GBcom o mesmo número de linhas.
    Por favor, veja uma definição de tabela parcial abaixo.

Verificamos o banco de dados SQL Server, ele possui modelo SQL_Latin1_General_CP1_CI_ASde agrupamento e Simplerecuperação. E o MySQL OLTP possui agrupamento padrão latin1_swedish_ci.

Nossas perguntas:

  • Em nosso cenário, por que o SQL Server ficou vezes maior que o MySQL para os mesmos dados? Por favor, indique se perdemos alguma coisa e o DWH pode ficar menor.
  • O mapeamento direto entre OLTP e DWH foi simples de implementar e funcionou até agora, muito bem. No entanto, sabíamos que existem muitas colunas buscadas, mas nunca usadas nos relatórios. Portanto, nos perguntamos se existem designs melhores ou práticas recomendadas em armazenamento de dados.

Agradecemos muito quaisquer dicas e sugestões.

Detalhes das definições de tabela parcial de amostra:

  1. MySQL OLTP, também consulte o modelo no repositório de código aberto Magento :
-- msab_magento.sales_order definition

CREATE TABLE `sales_order` (
  `entity_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Entity ID',
  `state` varchar(32) DEFAULT NULL COMMENT 'State',
  `status` varchar(32) DEFAULT NULL COMMENT 'Status',
  `coupon_code` varchar(255) DEFAULT NULL COMMENT 'Coupon Code',
  `protect_code` varchar(255) DEFAULT NULL COMMENT 'Protect Code',
  `shipping_description` varchar(255) DEFAULT NULL COMMENT 'Shipping Description',
  `is_virtual` smallint(5) unsigned DEFAULT NULL COMMENT 'Is Virtual',
  `store_id` smallint(5) unsigned DEFAULT NULL COMMENT 'Store ID',
  `customer_id` int(10) unsigned DEFAULT NULL COMMENT 'Customer ID',
  `base_discount_amount` decimal(20,4) DEFAULT NULL COMMENT 'Base Discount Amount',
  `base_discount_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Base Discount Canceled',
  `base_discount_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Base Discount Invoiced',
  `base_discount_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Discount Refunded',
  `base_grand_total` decimal(20,4) DEFAULT NULL COMMENT 'Base Grand Total',
  `base_shipping_amount` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Amount',
  `base_shipping_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Canceled',
  `base_shipping_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Invoiced',
  `base_shipping_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Refunded',
  `base_shipping_tax_amount` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Tax Amount',
  `base_shipping_tax_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Shipping Tax Refunded',
  `base_subtotal` decimal(20,4) DEFAULT NULL COMMENT 'Base Subtotal',
  `base_subtotal_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Base Subtotal Canceled',
  `base_subtotal_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Base Subtotal Invoiced',
  `base_subtotal_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Subtotal Refunded',
  `base_tax_amount` decimal(20,4) DEFAULT NULL COMMENT 'Base Tax Amount',
  `base_tax_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Base Tax Canceled',
  `base_tax_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Base Tax Invoiced',
  `base_tax_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Tax Refunded',
  `base_to_global_rate` decimal(20,4) DEFAULT NULL COMMENT 'Base To Global Rate',
  `base_to_order_rate` decimal(20,4) DEFAULT NULL COMMENT 'Base To Order Rate',
  `base_total_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Canceled',
  `base_total_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Invoiced',
  `base_total_invoiced_cost` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Invoiced Cost',
  `base_total_offline_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Offline Refunded',
  `base_total_online_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Online Refunded',
  `base_total_paid` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Paid',
  `base_total_qty_ordered` decimal(12,4) DEFAULT NULL COMMENT 'Base Total Qty Ordered',
  `base_total_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Base Total Refunded',
  `discount_amount` decimal(20,4) DEFAULT NULL COMMENT 'Discount Amount',
  `discount_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Discount Canceled',
  `discount_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Discount Invoiced',
  `discount_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Discount Refunded',
  `grand_total` decimal(20,4) DEFAULT NULL COMMENT 'Grand Total',
  `shipping_amount` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Amount',
  `shipping_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Canceled',
  `shipping_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Invoiced',
  `shipping_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Refunded',
  `shipping_tax_amount` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Tax Amount',
  `shipping_tax_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Shipping Tax Refunded',
  `store_to_base_rate` decimal(12,4) DEFAULT NULL COMMENT 'Store To Base Rate',
  `store_to_order_rate` decimal(12,4) DEFAULT NULL COMMENT 'Store To Order Rate',
  `subtotal` decimal(20,4) DEFAULT NULL COMMENT 'Subtotal',
  `subtotal_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Subtotal Canceled',
  `subtotal_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Subtotal Invoiced',
  `subtotal_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Subtotal Refunded',
  `tax_amount` decimal(20,4) DEFAULT NULL COMMENT 'Tax Amount',
  `tax_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Tax Canceled',
  `tax_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Tax Invoiced',
  `tax_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Tax Refunded',
  `total_canceled` decimal(20,4) DEFAULT NULL COMMENT 'Total Canceled',
  `total_invoiced` decimal(20,4) DEFAULT NULL COMMENT 'Total Invoiced',
  `total_offline_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Total Offline Refunded',
  `total_online_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Total Online Refunded',
  `total_paid` decimal(20,4) DEFAULT NULL COMMENT 'Total Paid',
  `total_qty_ordered` decimal(12,4) DEFAULT NULL COMMENT 'Total Qty Ordered',
  `total_refunded` decimal(20,4) DEFAULT NULL COMMENT 'Total Refunded',
  `can_ship_partially` smallint(5) unsigned DEFAULT NULL COMMENT 'Can Ship Partially',
  `can_ship_partially_item` smallint(5) unsigned DEFAULT NULL COMMENT 'Can Ship Partially Item',
  `customer_is_guest` smallint(5) unsigned DEFAULT NULL COMMENT 'Customer Is Guest',
  `customer_note_notify` smallint(5) unsigned DEFAULT NULL COMMENT 'Customer Note Notify',
  `billing_address_id` int(11) DEFAULT NULL COMMENT 'Billing Address ID',
  `customer_group_id` int(11) DEFAULT NULL,
    ...
  `reward_points_balance_refund` int(11) DEFAULT NULL COMMENT 'Reward Points Balance Refund',
  PRIMARY KEY (`entity_id`),
  UNIQUE KEY `SALES_ORDER_INCREMENT_ID_STORE_ID` (`increment_id`,`store_id`),
  KEY `SALES_ORDER_STATUS` (`status`),
  KEY `SALES_ORDER_STATE` (`state`),
  KEY `SALES_ORDER_STORE_ID` (`store_id`),
  KEY `SALES_ORDER_CREATED_AT` (`created_at`),
  KEY `SALES_ORDER_CUSTOMER_ID` (`customer_id`),
  KEY `SALES_ORDER_EXT_ORDER_ID` (`ext_order_id`),
  KEY `SALES_ORDER_QUOTE_ID` (`quote_id`),
  KEY `SALES_ORDER_UPDATED_AT` (`updated_at`),
  KEY `SALES_ORDER_SEND_EMAIL` (`send_email`),
  KEY `SALES_ORDER_EMAIL_SENT` (`email_sent`),
  CONSTRAINT `SALES_ORDER_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` FOREIGN KEY (`customer_id`) REFERENCES `customer_entity` (`entity_id`) ON DELETE SET NULL,
  CONSTRAINT `SALES_ORDER_STORE_ID_STORE_STORE_ID` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=71xxxxx DEFAULT CHARSET=utf8 COMMENT='Sales Flat Order';

  1. SQL Server DWH, gerado pelo Microsoft SSMA para MySQL:
/****** Object:  Table [msab_magento].[sales_order]    Script Date: 10/11/2023 3:17:43 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [msab_magento].[sales_order](
    [entity_id] [bigint] IDENTITY(2956088,1) NOT NULL,
    [state] [nvarchar](32) NULL,
    [status] [nvarchar](32) NULL,
    [coupon_code] [nvarchar](255) NULL,
    [protect_code] [nvarchar](255) NULL,
    [shipping_description] [nvarchar](255) NULL,
    [is_virtual] [int] NULL,
    [store_id] [int] NULL,
    [customer_id] [bigint] NULL,
    [discount_amount] [decimal](20, 4) NULL,
    [discount_canceled] [decimal](20, 4) NULL,
    [discount_invoiced] [decimal](20, 4) NULL,
    [discount_refunded] [decimal](20, 4) NULL,
    [grand_total] [decimal](20, 4) NULL,
    [shipping_amount] [decimal](20, 4) NULL,
    [shipping_canceled] [decimal](20, 4) NULL,
    [shipping_invoiced] [decimal](20, 4) NULL,
    [shipping_refunded] [decimal](20, 4) NULL,
    [shipping_tax_amount] [decimal](20, 4) NULL,
    [shipping_tax_refunded] [decimal](20, 4) NULL,
    [store_to_base_rate] [decimal](12, 4) NULL,
    [store_to_order_rate] [decimal](12, 4) NULL,
    [subtotal] [decimal](20, 4) NULL,
    [subtotal_canceled] [decimal](20, 4) NULL,
    [subtotal_invoiced] [decimal](20, 4) NULL,
    [subtotal_refunded] [decimal](20, 4) NULL,
    [tax_amount] [decimal](20, 4) NULL,
    [tax_canceled] [decimal](20, 4) NULL,
    [tax_invoiced] [decimal](20, 4) NULL,
    [tax_refunded] [decimal](20, 4) NULL,
    [total_canceled] [decimal](20, 4) NULL,
    [total_invoiced] [decimal](20, 4) NULL,
    [total_offline_refunded] [decimal](20, 4) NULL,
    [total_online_refunded] [decimal](20, 4) NULL,
    [total_paid] [decimal](20, 4) NULL,
    [total_qty_ordered] [decimal](12, 4) NULL,
    [total_refunded] [decimal](20, 4) NULL,
    [can_ship_partially] [int] NULL,
    [can_ship_partially_item] [int] NULL,
    [customer_is_guest] [int] NULL,
    [customer_note_notify] [int] NULL,
    [billing_address_id] [int] NULL,
    [customer_group_id] [int] NULL,
    [edit_increment] [int] NULL,
    ...
    [shipping_incl_tax] [decimal](20, 4) NULL,
 CONSTRAINT [PK_sales_order_entity_id] PRIMARY KEY CLUSTERED 
(
    [entity_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY],
 CONSTRAINT [sales_order$SALES_ORDER_INCREMENT_ID_STORE_ID] UNIQUE NONCLUSTERED 
(
    [increment_id] ASC,
    [store_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 95) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [msab_magento].[sales_order] ADD  DEFAULT (NULL) FOR [state]
GO

ALTER TABLE [msab_magento].[sales_order] ADD  DEFAULT (NULL) FOR [status]
GO

...

ALTER TABLE [msab_magento].[sales_order] ADD  DEFAULT (NULL) FOR [shipping_incl_tax]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_SSMA_SOURCE', @value=N'msab_magento.sales_order' , @level0type=N'SCHEMA',@level0name=N'msab_magento', @level1type=N'TABLE',@level1name=N'sales_order'
GO

sql-server
  • 1 respostas
  • 83 Views
Martin Hope
Peter
Asked: 2023-10-11 21:21:11 +0800 CST

Adicione itens ao JSON

  • 9

Tenho os seguintes JSONs que gostaria de combinar. No meu JSON tenho a parte 'kenmerken' onde gostaria de adicionar mais alguns itens. Achei que isso poderia ser feito usando JSON_MODIFY. Porém quando eu uso o comando abaixo, ele irá substituir os itens 1, 2 e 3. E quando eu incluir 'append' antes de $.kenmerken, ele só mostrará os novos. Como posso conseguir ter ambos no objeto kenmerken?

DECLARE @FirstJSON NVARCHAR(MAX) = N'
{
    "message id": "B673A8E4-3652-4544-A02D-BA9726BD71ED",
    "volgnummer": 61000233530024,
    "debug": null,
    "kenmerken": {
        "item 1": 1,
        "item 2": 1,
        "item 3": 1
    }
}
';

DECLARE @KenmerkenToAdd NVARCHAR(MAX) = N'
{
    "Item 4": false,
    "Item 5": false
}
';

SET @FirstJSON = JSON_MODIFY(
                               @FirstJSON,
                               ' $.kenmerken',
                               JSON_QUERY(@KenmerkenToAdd)
                            );

SELECT @FirstJSON;

Darei:

{
"message id": "B673A8E4-3652-4544-A02D-BA9726BD71ED",
"volgnummer": 61000233530024,
"debug": null,
"kenmerken": {
   "Item 4": false,
   "Item 5": false
   }
}

Onde eu gostaria de ter:

{
    "message id": "B673A8E4-3652-4544-A02D-BA9726BD71ED",
    "volgnummer": 61000233530024,
    "debug": null,
    "kenmerken": {
       "Item 1": 1,
       "Item 2": 1,
       "Item 3": 1,
       "Item 4": false,
       "Item 5": false
       }
    }
sql-server-2019
  • 1 respostas
  • 198 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