Próbuję konwertować skrypty SQL, które zostały utworzone w Microsoft SQL Server, aby działały z selektorem linków do skryptów, które mogą być używane w procedurach SQL, a skrypt, którego używam, używaROW_NUMBER() odpowiednik w MySQL do wstawiania
ROW_NUMBER() OVER(ORDER BY [FIELDS])
aby utworzyć klucz podstawowy, który nie jest zależny od automatycznego przyrostu, gdy próbuję i zapisać kod jako procedurę otrzymuję ten błąd
ERROR 1064 (42000): masz błąd w Twojej składni SQL: sprawdź instrukcję, która odpowiada twojej wersji serwera MySQL dla właściwej składni do użycia w pobliżu '(ORDER BY [FIELDS])' at line [LINENO]
oczywiście błędu mówiąc, że ROW_NUMBER NAD nie jest odpowiednia przyczyna usunąłem trochę ponad i masz błąd mówiąc, że ROW_NUMBER był niezdefiniowany
wszędzie szukam i nie dostaną nic, ale ludzie z tym pytaniem dla instrukcji SELECT, nie instrukcji INSERT i odpowiedzi przez większość czasu są po prostu albo uzyskanie liczby wierszy lub uzyskanie ostatniego id włożonej, więc co mogę użyć, aby utworzyć te same dane, które ROW_NUMBER() byłoby w Microsoft Server
Jest powiedzenie, że 'funkcja OVER' ma nieprawidłowe argumenty. –
@ColeJohnson: OVER nie jest już w MySQL, sprawdziłem go, wyszukując go w Google i otrzymałem tylko łącza do MSDN, nawet jeśli argument byłby właściwy, prawdopodobnie podałby tę samą wiadomość co ROW_NUMBER lub błąd składniowy między 2 funkcje ...... i tak skrypt działa w Microsoft SQL Server, ponieważ uruchomiłem go w tym, ponieważ używa on tylko serwera Link, dzięki czemu skrypt działa lepiej, przenosząc go z serwera linków do rzeczywistego użycia w samym serwerze –
Próbuję wstawić numer wiersza do tabeli, nie mogę użyć INSERT INTO [TABLE] VALUES (@ rank + 1), ponieważ spowoduje to, że otrzymam 1 za każdym razem, co nie jest dozwolone klucz podstawowy i próbowałem @row + = 1 –