Prawdopodobnie mam wąski umysł, ale jeśli utworzę ograniczenie klucza obcego, a wiersz zostanie zaktualizowany lub usunięty, utracę to połączenie, jeśli kolumna tabeli podrzędnej zostanie ustawiona na NULL. Jaki jest cel celowego utrzymywania tych osieroconych rzędów?
Mam stolik: CREATE TABLE [dbo].[Realty]( [Id] [int] IDENTITY(1,1) NOT NULL, [RankingBonus] [int] NOT NULL, [Ranking] AS ([Id]+[RankingBonus]) PERSISTED NOT NULL .... ) I widok: CREATE View [dbo].[FilteredRealty] AS SELECT realty.Id as realtyId, ... COALESCE(realty.Wgs84X, ruian_cobce.Wgs84X, ruian_obec.Wgs84X) as Wgs84X, COALESCE(realty.Wgs84Y, ruian_cobce.Wgs84Y, ruian_obec.Wgs84Y) as Wgs84Y, realty.Ranking, ... FROM realty JOIN Category ON …
Rozważ tę wybraną instrukcję: SELECT *, 1 AS query_id FROM players WHERE username='foobar'; Zwraca kolumnę query_idz wartością 1wraz z innymi kolumnami gracza. Jak sprawić, by powyższy SQL zwrócił przynajmniej ten query_idz, 1nawet jeśli zaznaczenie nie znajdzie pasujących wierszy? BTW, to PostgreSQL 8.4.
Jeśli mam to - tadd jest Addresstabelą: CONCAT(tadd.street_number, ' ', tadd.street_name,', ', tadd.apt_number,', ', tadd.city,', ', tadd.postal_code,', ', tadd.country) AS 'Address' Czy istnieje sposób na wykluczenie apt_number, jeśli nie istnieje? Myślałem o: WHERE tadd.apt_number IS NOT NULL Ale zwróci tylko te wiersze apt_number, i nawet jeśli coś działa, jak mam …
Mam tabelę z dużą ilością wstawek, ustawiając jedno z pól ( uploaded_at) na NULL. Następnie okresowe zadanie wybiera wszystkie krotki WHERE uploaded_at IS NULL, przetwarza je i aktualizuje, ustawiając uploaded_atna bieżącą datę. Jak powinienem indeksować tabelę? Rozumiem, że powinienem użyć częściowego indeksu, takiego jak: CREATE INDEX foo ON table (uploaded_at) …
Mam problem z użyciem nowej funkcji UPSERT w Postgres 9.5 Mam tabelę, która służy do agregowania danych z innej tabeli. Klucz złożony składa się z 20 kolumn, z których 10 można zerować. Poniżej stworzyłem mniejszą wersję problemu, który mam, szczególnie z wartościami NULL. CREATE TABLE public.test_upsert ( upsert_id serial, name …
Rozwiązałem problem zapytania za pomocą ... row_number() over (partition by... to jest bardziej ogólne pytanie, dlaczego nie możemy używać kolumn z wartościami null w złączeniach. Dlaczego null nie może być równy null ze względu na połączenie?
Czy postgres jest sposobem na połączenie IS DISTINCT FROMz ANYinnym sposobem na uzyskanie tego samego rezultatu? select count(*) from (select 'A' foo union all select 'Z' union all select null) z where foo <> any(array[null, 'A']); count ------- 1 (1 row) select count(*) from (select 'A' foo union all select …
Niedawno dodałem kolumnę bitową obsługującą NULL do tabeli, która ma prawie 500 milionów wierszy. W kolumnie nie ma wartości domyślnej, jednak wszystkie wstawki określają wartość 0 lub 1, a ja uruchomiłem jednorazową procedurę, aby przypisać 0 lub 1 do wszystkich istniejących wierszy (aktualizując wiersze małymi partiami). Każdy wiersz powinien mieć …
Nasza firma współpracuje z inną firmą programistyczną dla wspólnego projektu i powiedziano nam, że jeśli konkretna wartość nie zostanie wyświetlona, powinniśmy przekazać wartość -5000 (ich arbitralna wartość wartownika); powodem jest to, że żadna kolumna liczbowa w ich bazie danych Oracle nie obsługuje wartości zerowych, na zalecenie ich (obecnie byłego) dewelopera …
Mam zapytanie na dużej tabeli, która wygląda następująco: declare @myIdParam int = 1 select * from myTable where (@myIdParam is null or myTable.Id = @myIdParam) Istnieje kilka podobnych warunków warunkowych w klauzuli where, a także wiele sprzężeń, ale jest to streszczenie. W efekcie, jeśli @myIdParam ma wartość null, nie chcemy …
Mam tabelę z milionami wierszy i kolumnę, która dopuszcza wartości NULL. Jednak żaden wiersz nie ma obecnie wartości NULL dla tej kolumny (mogę to dość szybko zweryfikować za pomocą zapytania). Jednak gdy wykonam polecenie ALTER TABLE MyTable ALTER COLUMN MyColumn BIGINT NOT NULL; zapytanie trwa wiecznie relatywnie rzecz biorąc. W …
Mam aplikację (dane są przechowywane w PostgreSQL), w której większość pól w tabelach nie zawsze ma wartość NULL, ale schemat tych tabel nie wymusza tego. Na przykład spójrz na tę fałszywą tabelę: CREATE TABLE "tbl" ( "id" serial, "name" varchar(40), "num" int, "time" timestamp PRIMARY KEY ("id"), UNIQUE ("id") ); …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.