Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja zlączenia (zaawansowane tworzenie id)
Forum PHP.pl > Forum > Bazy danych > MySQL
pikasso
Hej robię sobie funkcję, która pozwala na utworzenie ID użytkownika poprzez:
aktualny_czas.losowa_zmienna

Tak wygląda moja funkcja
  1. DROP FUNCTION IF EXISTS mojabaza.NEWID;
  2.  
  3. DELIMITER $
  4. CREATE FUNCTION mojabaza.NEWID() RETURNS BIGINT DETERMINISTIC
  5. BEGIN DECLARE v_WYNIK BIGINT DEFAULT 1;
  6. DECLARE v_MOD BIGINT DEFAULT 1;
  7. DECLARE v_ID BIGINT DEFAULT 1;
  8.  
  9.  
  10. SET v_ID = DATE_FORMAT(NOW(),'%y%h%d%H%i%s');
  11.  
  12. SET v_MOD = RIGHT((RAND()*4096),4);
  13. SET v_WYNIK = v_ID.v_MOD;
  14. RETURN v_WYNIK;
  15. END $
  16.  
  17. DELIMITER ;
  18.  
  19. SELECT mojabaza.NEWID();


Wszystko ma robić mysql a nie PHP
i teraz chciałbym się dowiedzieć w jaki sposób ustanowić logiczne połączenie (dopisanie do jednej zmiennej drugiej)

chodzi mi konkretnie o tą linijkę SET v_WYNIK = v_ID.v_MOD; bo się męczę i przez znak + dopisywałem i delimiter z $ zmieniane było na // i dawałem logiczne złączenie &&
nevt
o to ci chodzi?
  1. DROP FUNCTION IF EXISTS NEWID;
  2.  
  3. DELIMITER $
  4. CREATE FUNCTION NEWID() RETURNS BIGINT DETERMINISTIC
  5. BEGIN DECLARE v_MOD VARCHAR(4);
  6. DECLARE v_ID VARCHAR(14);
  7.  
  8. SET v_ID = DATE_FORMAT(NOW(),'%Y%m%d%H%i%s');
  9. SET v_MOD = RIGHT(RAND(),4);
  10. RETURN CAST(CONCAT(v_ID, v_MOD) AS UNSIGNED);
  11. END $
  12.  
  13. DELIMITER ;
  14.  
  15. SELECT NEWID();
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.